异常处理:
try:
有可能发生异常的代码:1/0except 异常类型:
捕获并处理语句
except 异常类型:
处理语句
except(异常1,异常2 ...)
针对多个问题的解决方案
else:
如果没有出现异常,将会执行这行代码
finally:
管你有木有异常都会执行的代码
try: num = int(input('please input a number:')) #input可能会输入0,报错ZeroDivisionError print(100 / num) except ZeroDivisionError: print('不能为零') #出现错误时执行except内的代码 else: print('congratulation!') #正常运行时执行else finally: print('ok!') #最终都会输出的代码
执行结果:
please input a number:0 #当输入的数字为0时
不能为零
ok!
或
语句体
except (异常类型1,异常类型2): 合并写
处理语句
except Exception:
所有异常
或
语句体
except 异常类型 as 名称:
print(名称)
else:
没有异常才会执行的代码
try: num = int(input('please input a number:')) print(100 / num) except ZeroDivisionError as e: print('不能为零') print(e) else: print('congratulation!') finally: print('ok!')
结果:
please input a number:0
不能为零
division by zero
ok!
try: num = int(input('please input a number:')) print(100 / num) except ZeroDivisionError as e: print('不能为零') print(e) except NameError: print('名字错了!') except Exception as e: #所有错误都是继承自Exception,如果写上这句话,所有异常都会被拦截,最后一个异常在写它 print('我也不知道什么错了,继承一Exception吧!') print(e) else: print('congratulation!') finally: print('ok!')
流程:
1.执行try下面的语句
2.如果出现异常,则在except语句里查找对应异常并进行处理
3.如果没有出现异常,则执行else语句内容
4.最后,不管是否出现异常,都要执行finally语句
(越具体的异常越往前放)
except Exception as e: #所有错误都是继承自Exception,如果写上这句话,所有异常都会被拦截,最后一个异常在写它