目录
异常是什么
常见异常
python异常处理语句
注意:
rasie
实践时注意事项
异常是什么
在调式python程序时,会经常报出异常,也可以理解为bug,当程序遇到异常时,程序则会停止运行,异常的出现的原因一方面是在写的过程中因为粗心语法、逻辑等发生错误,这种情况经过调式修改基本上都可以解决,另一方面是有些异常是不可避免的,这个时候就可以对异常进行捕捉,以防止程序停止运行。
常见异常- BaseException
- 所有异常的基类
- SystemExit
- 解释器请求退出
- KeyboardInterrupt
- 用户中断执行(通常是输入^C)
- GeneratorExit
- 生成器(generator)发生异常来通知退出
- Exception
- 常规异常的基类
- NameError
- 访问的变量不存在
- AssertionError
- 断言语句(assert)失败
- OverflowError
- 数值运算超出最大限制
- AttributeError
- 对象没有这个属性
- OSError
- *** 作系统产生的异常
- FloatingPointError
- 浮点计算错误
- SyntaxError
- Python语法错误
- ImportError
- 导入模块/对象失败
- TypeError
- 不同类型间的无效 *** 作
- IndexError
- 序列中没有此索引(index)
- ValueError
- 传入无效的参数
- IOError
- 输入/输出 *** 作失败
- ZeroDivisionError
- 除(或取模)零 (所有数据类型)
- KeyError
- 映射中没有这个键,建议使用dict.get()方法
- MemoryError
- 内存溢出错误(对于Python 解释器不是致命的)
- NameError
- 常规异常的基类
- SystemExit
- 所有异常的基类
语句结果如下:
try:
代码1
except 异常1:
代码2
except 异常2:
代码3
else:
代码4
finally:
代码5
首先运行try内的代码1,如果代码1中出现了异常1,就运行代码2,如果出现了异常2,就运行代码3,以此类推。反之当代码1中没有出现异常,则运行代码4,finally中的语句代码5是最后运行的,是不管有没有异常都会运行。
注意:- except语句不是必须,finally语句也不是必须,但是两者必有一个,否则就没有try的意义了
- except语句可以有多个,python会按照except语句的顺序依次匹配你所指定的异常,如果异常已经处理就不会再进入到后面的Except.
- except语句可以用元组形式用时指定多个异常
- except语句后面如果不指定异常类型,则默认捕捉所有异常,可以通过logging或这sys模块获取当前
作用是可以抛出异常。简单说就是可以主动触发异常。
格式:
raise[Exception[,args[,Traceback]]]
注意:
- 如果要捕获异常重新抛出,请使用rasie, 后面不要带任何参数或者信息
- 不建议捕获并抛出同一个异常.
- 只处理你所知道的异常,避免捕获到所有的异常之后吞掉它们
- 抛出异常之后应该说明原因,有时候你知道这个异常类型也猜不出所以然.
- 避免在try语句块中干一些没有意义的事情,捕获异常也是需要成本的.
- 不要使用异常来控制流程,因为你的程序会超级难懂和维护.
- 如果有需要,切记使用finally来释放资源
- 如果有需要,不要忘记在处理完异常之后做清理工作或者回滚 *** 作.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)