异常处理
上一篇 /
下一篇 2017-06-01 16:43:57
/ 个人分类:Python
为什么使用异常:
x = '13'
# for i in range(2,x):
# print(i)
try:
for i in range(2,x):
print(i)
except Exception as msg:
print(msg)
print('not finish yet')
range接受的参数是整数,否则发生异常。如果不用try捕捉异常,那么最后一句print就不能执行到。
异常处理的方式:try...except
try...except...final
触发异常:raise 异常类名
with/as 环境管理器
自定义异常
新的所有异常的基类BaseException
所有异常的基类Exception,(继承于BaseException)
所以在不能记住具体的异常类,或者有多个异常要处理时,可以用Exception或BaseException
try:
print(aa)
except Exception:
print('exception here')
输出:
exception here
想要python直接告诉我们异常的原因,就在Exception后面定义变量接收异常信息
try:
print(aa)
except Exception as msg:
print(msg)
输出:
name 'aa' is not defined
可以使用raise触发异常,
class MyTest(object):
def __init__(self,x):
self.x = x
@property
def x(self):
return self.x
@x.setter
def x(self,x):
if x < 0:
raise ValueError('cannot be smaller than 0')
if x > 100:
raise ValueError('cannot be greater than 100')
a = MyTest(2000)
当x的值不符合条件时,自动触发异常
总结:关于异常有三种
1.捕捉异常,以便代码出现异常时自动终止,try...except方法
2.触发异常,以便检测某种错误,raise 异常
3.使用环境管理器,无论是否有异常都可以自动进行清理工作,如自动关闭文件,释放锁,断开数据库连接,with/as环境管理器。
收藏
举报
TAG: