python用exception object来表示异常情况
如果异常对象未被处理或捕获,程序就会用回溯(traceback)终止执行
自定义异常
通过继承Exception类:
class YourException(Exception):
pass
捕捉异常 try/except
- 使用try/except捕捉异常
- raise上报当前异常,并使程序崩溃
- 多个except语句可以对应处理多个异常
- try没有引发异常就会执行else子句
- 无论是否引发异常都会执行finally子句
- 函数内引发的异常会被传播到函数调用的地方
示例
try:
print("正常代码")
except ZeroDivisionError:
pass
except : # 多个except处理多个异常
raise Exception('xxx'') # raise 直接上报异常而不是让调用者再上报
except (NameError, TypeError): #用(tuple)来捕捉多个异常块
pass
except (tuple) as e: # 捕捉异常obj
print(e) # 打印当前异常obj信息
else: # 未执行except子句就执行else子句
print("代码运行正常") # 如同while/else
finally: # 无论是否异常都会执行finally子句
pass # 一般用于close file或close socket等
警告 warning
函数
warnings.filterwarnings(action...)