相关概念
- 错误:程序运行之前的语法问题。如:关键字、缩进对齐、符号不成对等
- 异常:程序运行过程中出现的问题。如:除数为0、下标越界、访问不存在的对象属性等
异常处理
- 说明
- 异常处理就是在程序出现异常时进行人为的干预
- 异常处理可以认为是一种特殊的流程控制语句
- 异常处理可以提高代码的健壮性
- 语法
try: print('正常代码') a = 10 / 0 print('执行结束') except Exception as e: # Exception是所有异常的基类 # 捕获异常,然后进行异常的处理 print('出现异常', e) print('OVER')
- 多异常处理
''' # 每种异常都有特定的处理方案,可以进行单独处理 try: print('正常代码') # print(a) # print(10/0) print([][3]) print('正常结束') except NameError as e: print('NameError', e) except ZeroDivisionError as e: print('ZeroDivisionError', e) except Exception as e: print('其他异常', e) ''' try: print('正在执行') # print(a) print(10/0) print('正常结束') except (NameError, ZeroDivisionError) as e: # 分组处理异常 print('NameError or ZeroDivisionError', e) except Exception as e: print('其他异常', e) print('OVER')
- 完整异常结构
try: print('正常执行') print(10/0) print('正常结束') except Exception as e: print('出现异常', e) else: print('else语句:没有异常时会执行') finally: print('finally语句:无论有无异常都执行') print('OVER')
- 手动抛出异常
try: print('正常执行') # 手动抛出异常 raise Exception('手动抛出的异常') print('正常结束') except Exception as e: print('出现异常', e) print('OVER')
- 异常嵌套
print('我要去上班,什么也阻止不了上班的脚步') try: print('我准备骑电动车去上班') raise Exception('不知道哪个粗心的家伙把我充电器弄掉了') print('骑电车提前到达公司') except Exception as e: print('电车异常:', e) try: print('于是我准备坐公交车去上班') raise Exception('等了15分钟一直没有公交车到来') print('乘坐公交准时到达公司') except Exception as e: print('公交异常:', e) print('于是决定打车去上班') print('打车还是快,提前达到公司') print('热情满满开始一天的工作')
- 自定义异常类
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~