异常
对于非正常情况,不是终止程序而是进行异常处理
- try…一个 except 结构
try:语句块内容异常,则执行except:语句
try:
a = float(input('输入除数:'))
b = float(input('输入被除数:'))
c = b/a
print(c)
except:
print("数据错误")
- try…多个 except 结构
可能出现的多个异常(按照先子类后父类的顺序),并且针对性的写出异常处理代码。
- try…except…else 结构
如果 try 块中没有抛出异常,则执行else块
- try…except…finally 结构
finally 块无论是否发生异常都会被执行;通常用来释放 try 块中申请的资源。
- return 语句和异常处理问题
不把 return 放到异常处理结构中,而是放到方法最后。
- with 上下文管理
with 上下文管理可以自动管理资源,在 with 代码块执行完毕后自动还原进入该代码之前的现场或上下文。不论何种原因跳出 with 块,不论是否有异常,总能保证资源正常释放。
- trackback 模块
import traceback
try:
a = float(input('输入除数:'))
b = float(input('输入被除数:'))
c = b/a
print(c)
except:
traceback.print_exc() #打印出错误类型
- 自定义异常类