智泊Python--Day14

智泊Python–Day14

  Day14 是 Python 基础部分的收官——异常处理。先分清两个概念:错误是代码还没运行就报(语法错、缩进错),异常是运行时才炸(除零、下标越界、键不存在)。异常处理的意义是:让程序遇到意外时不崩溃,而是优雅地捕获、提示、或走兜底逻辑。核心语法就是 try-except 家族,外加主动 raise 和 assert。

 

1.异常错误处理

  异常处理的几种组合:

  • try-except:尝试执行 try,出错就进 except,except 里能拿到异常对象 e(含信息和类型)
  • try-except-else:else 在「没有异常」时才执行
  • try-except-finally:finally 无论是否报错都执行(常用来释放资源,比如关文件、断连接)
  • try-except-else-finally:三者齐全

下面先列出 Python 常见的内置异常类型,再用 raise 主动抛异常、assert 做断言(了解)。注意 raise 那行如果直接运行会终止程序——它演示的是「主动报错」的语法。

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# 异常处理

# 错误:代码还没运行就报错
# 异常:代码运行时报错


# 异常处理方法
# try-except
try:
a = 0
b = 10 / a
except Exception as e:
print(e)
print(type(e))
print("报错了")
print("=" * 20)

# try-except-else
try:
a = 0
b = 10 / a
except Exception as e:
print(e)
print(type(e))
print("报错了")
else:
print("没有报错,程序继续执行")
print("=" * 20)

# try-except-finally
try:
a = 0
b = 10 / a
except Exception as e:
print(e)
print(type(e))
print("报错了")
finally:
print("不管是否报错,都会执行")
print("=" * 20)

# try-except-else-finally


# Python自带的异常类型
# AttributeError:属性错误
# NameError:变量没有定义
# IndexError:索引错误
# ZeroDivisionError:除0错误
# KeyError:键值错误
# FileExistsError:文件已存在错误
# FileNotFoundError:文件不存在错误
# ImportError:导入包错误
# IndentationError:缩进错误
# SyntaxError:语法错误


# 主动抛出异常的关键字 raise
raise NameError("sorry,我报错了")


# 断言 assert (了解)
def fn():
# 断定n
assert n != 0 , "报错了,n不能为0"

fn(0)

智泊Python--Day14
https://one-null-pointer.github.io/2026/08/02/智泊Python--Day14/
Author
liaoyue
Posted on
August 2, 2026
传送口