python 异常处理
处理流程
try: 1/0 except (ZeroDivisionError,NameError) as e: print("这里给出可能的出错信息",e) else: print("如果try成功,执持这里") finally: print("最后执行的内容,不管是否出现异常,都会执行的语句") try: 1/2 except (ZeroDivisionError,NameError) as e: print("xxx",e) else: print("如果try成功,执持这里") finally: print("最后执行的内容,不管是否出现异常,都会执行的语句") try: 1/0 except Exception as e: print("这果给出详细的出错信息",e) else: print("如果try成功,执持这里") finally: print("最后执行的内容,不管是否出现异常,都会执行的语句")
这里给出可能的出错信息 division by zero
最后执行的内容,不管是否出现异常,都会执行的语句
如果try成功,执持这里
最后执行的内容,不管是否出现异常,都会执行的语句
这果给出详细的出错信息 division by zero
最后执行的内容,不管是否出现异常,都会执行的语句
import traceback class Test: def __enter__(self): print("enter") return self def __exit__(self, exc_type, exc_val, exc_tb): print(self,exc_type, exc_val, exc_tb) print(traceback.extract_tb(exc_tb)) print("exit") return True with Test() as x: 1/0
enter
<__main__.Test object at 0x000001A532943CC8> <class 'ZeroDivisionError'> division by zero <traceback object at 0x000001A532943E08>
[<FrameSummary file D:/Users/Error/Error2.py, line 13 in <module>>]
exit
import contextlib @contextlib.contextmanager def test2(): try: yield except ZeroDivisionError as e: print("这里是错误信息",e) with test2() as w: 1/0
这里是错误信息 division by zero
每天进步一点点,多思考,多总结
版权声明:本文为CNblog博主「zaituzhong」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。