|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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:如何自定义异常,并抛出自定义异常? |
|