答案页 · 12 道题

Python 错误处理练习答案

本页汇总 Python 错误处理 的 12 道练习。先做练习页,再回到这里核对准确答案和原因。

快速答案

本答案页包含 Python 错误处理 的 4 道选择题、4 道填空题和 4 道输出预测题,每题都给出准确答案和简短解释。

答案已完整展示,建议先尝试作答,再用本页核对。第一次练习最好从互动练习页开始。

01 · 选择题

int("abc") 会抛出哪个异常?

  1. KeyError
  2. IndexError
  3. ValueError正确答案
  4. TypeError

答案: ValueError

为什么: 文本类型正确,但值无法转换成 int。

02 · 选择题

访问字典中不存在的键会抛出哪个异常?

  1. ValueError
  2. SyntaxError
  3. NameError
  4. KeyError正确答案

答案: KeyError

为什么: 用方括号访问缺失键会触发 KeyError。

03 · 选择题

try/except 的主要用途是什么?

  1. 处理预期内的失败并恢复正确答案
  2. 把文本转换成数字
  3. 隐藏所有 bug
  4. 让代码运行得更快

答案: 处理预期内的失败并恢复

为什么: 异常处理应该捕获具体、可预期的失败,并选择兜底方案。

04 · 选择题

finally 代码块什么时候执行?

  1. 总是执行,在 try 和 except/else 之后正确答案
  2. 只在 try 成功时
  3. 只在程序退出时
  4. 只在发生异常后

答案: 总是执行,在 try 和 except/else 之后

为什么: finally 用于无论成功失败都必须执行的清理。

05 · 填空题

补全异常类型,处理非法的整数转换。

try:
    value = int(text)
except ____:
    value = 0

答案: ValueError

为什么: 文本无法转换成整数时,int() 会抛出 ValueError。

06 · 填空题

补全关键字,开始异常处理代码块。

try:
    value = int(text)
____ ValueError:
    value = 0

答案: except

为什么: except 引入处理匹配异常的代码块。

07 · 填空题

补全异常类型,处理字典缺失键。

try:
    price = order["price"]
except ____:
    price = 0

答案: KeyError

为什么: 用方括号读取缺失键会触发 KeyError。

08 · 填空题

补全代码块,它用于总是执行的清理。

try:
    print("work")
____:
    print("cleanup")

答案: finally

为什么: 无论 try 成功还是失败,finally 都会运行。

09 · 输出预测

这段代码会输出什么?

try:
    print(int("5"))
except ValueError:
    print("bad")

答案: 5

为什么: 转换成功,所以跳过 except 分支。

10 · 输出预测

运行结果是什么?

try:
    print(int("x"))
except ValueError:
    print("invalid")

答案: invalid

为什么: 转换失败,所以处理代码打印 invalid。

11 · 输出预测

这段程序打印出什么?

order = {}
try:
    print(order["price"])
except KeyError:
    print("missing")

答案: missing

为什么: 键不存在,所以执行 KeyError 处理代码。

12 · 输出预测

代码的输出结果是什么?

try:
    print("try", end=" ")
finally:
    print("finally")

答案: try finally

为什么: finally 总会执行,第一个 print 没有换行。

先试一遍题目

打开 Python 错误处理 练习页,用即时反馈回答同样的 12 道题。

练习本课