0%

【Python笔记】异常

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