有时在try-except语句中会占用一些资源,例如打开文件、网络连接、打开数据库及数据集等都会占用计算机资源,需要程序员释放这些资源。为了保证这些资源可以释放,可以使用finally代码模块。
一使用finally代码块释放资源
在try-except 语句后面还可以跟一个finally 代码块,语法如下
try:
<可能会引发异常的语句>
except 异常数据类型1:
<异常处理>
except 异常数据类型2:
<异常处理>
…
except:
<异常处理>
finally:
<释放资源>
i = input(“请输入数字:”)
n = 888810
try:
result = n /int(i)
print(result)
print(“{0}除以{1}等于{2}”.format(n,i,result))
except ZeroDivisionError as e:
print(“不能除以0,异常:{}”.format(e))
except ValueError as e:
print(“输入的是无效数据,异常:{}”.format(e))
finally:
print(“释放资源*****”)
二自定义异常类
class robosenceException(Exception) :
def init(self, message):
super().init(message)
构造方法,其中的参数message 是异常信息描述
调用父类的构造方法,并把参数message 传给父类构造函数