马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
1、如何检测异常并处理
异常检测:try
1)try-except语句:
try:
检测范围
except Exception[as reason]:
出现异常(Exception)后的处理代码
try:
int('abc')
sum = 1 + '1'
f = open('c:\\a.txt')
print(f.read())
f.close()
except OSError as error:
print('文件出错了\n错误的原因是 %s' % str(error))
except TypeError as error:
print('类型出错了\n错误的原因是 %s' % str(error))
except:
print('出错了')
文件出错了
错误的原因是 [Errno 2] No such file or directory: 'c:\\a.txt'
注:一个try可与多个except搭配使用;不推荐使用except包含所有的except;一旦出现异常,后面的代码不会执行;也可以把多个异常写在一起,如下:try:
int('abc')
sum = 1 + '1'
f = open('c:\\a.txt')
print(f.read())
f.close()
except (OSError,TypeError):
print('出错了')
2)try-finally语句
try:
检测范围
except Exception[as reason]:
出现异常(Exception)后的处理代码
finally:
无论如何都会被执行的代码
注:一般都把file.close()写到finally中
2、raise语句
1)>>> raise
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
raise
RuntimeError: No active exception to reraise
2)>>> raise ZeroDivisionError
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
raise ZeroDivisionError
ZeroDivisionError
>>> raise ZeroDivisionError('除数为零的异常')
Traceback (most recent call last):
File "<pyshell#3>", line 1, in <module>
raise ZeroDivisionError('除数为零的异常')
ZeroDivisionError: 除数为零的异常
Q:如何自定义异常,并抛出自定义异常? |