1、定义
异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。
2、异常处理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| """ 异常处理 """ from tool import topic
def demo_1(): print(x) pass
def demo_2(): try: print(5 / 0) except (NameError, IOError): print("There is a NameError or IOError occured.") pass
def demo_3(): try: print(x) except: print("Name Error occured.") return finally: print("demo_3 end.") print("In function demo_3.") pass
if __name__ == "__main__": demo_1() demo_2() demo_3() pass
|
3、打印异常信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| """ 打印异常信息 """ import traceback
def demo_1(): try: print(5 / 0) except Exception as e: print(e) pass
def demo_2(): try: print(5 / 0) except Exception as e: traceback.print_exc() pass
if __name__ == "__main__": demo_1() demo_2() pass
|
4、触发异常
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| """ 触发异常 """ from tool import topic import traceback
@topic("Demo-1") def demo_1(): try: raise NameError except Exception as e: traceback.print_exc() pass
@topic("Demo-2") def demo_2(): level = 1 try: if level == 1: raise Exception("Invalid level!", level) except Exception as e: traceback.print_exc() pass
if __name__ == "__main__": demo_1() demo_2() pass
|
5、自定义异常
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| """ 自定义异常 """
class MyException(Exception):
def __init__(self, name, reason): self.name = name self.reason = reason
def demo_1(): try: raise MyException("TimeoutError", "Connection timeout.") except MyException as e: print(f"{e.name}: {e.reason}") pass
if __name__ == "__main__": demo_1() pass
|