本答案页包含 Python 错误处理 的 4 道选择题、4 道填空题和 4 道输出预测题,每题都给出准确答案和简短解释。
答案已完整展示,建议先尝试作答,再用本页核对。第一次练习最好从互动练习页开始。
int("abc") 会抛出哪个异常?
答案: ValueError
为什么: 文本类型正确,但值无法转换成 int。
访问字典中不存在的键会抛出哪个异常?
答案: KeyError
为什么: 用方括号访问缺失键会触发 KeyError。
try/except 的主要用途是什么?
答案: 处理预期内的失败并恢复
为什么: 异常处理应该捕获具体、可预期的失败,并选择兜底方案。
finally 代码块什么时候执行?
答案: 总是执行,在 try 和 except/else 之后
为什么: finally 用于无论成功失败都必须执行的清理。
补全异常类型,处理非法的整数转换。
try:
value = int(text)
except ____:
value = 0答案: ValueError
为什么: 文本无法转换成整数时,int() 会抛出 ValueError。
补全关键字,开始异常处理代码块。
try:
value = int(text)
____ ValueError:
value = 0答案: except
为什么: except 引入处理匹配异常的代码块。
补全异常类型,处理字典缺失键。
try:
price = order["price"]
except ____:
price = 0答案: KeyError
为什么: 用方括号读取缺失键会触发 KeyError。
补全代码块,它用于总是执行的清理。
try:
print("work")
____:
print("cleanup")答案: finally
为什么: 无论 try 成功还是失败,finally 都会运行。
这段代码会输出什么?
try:
print(int("5"))
except ValueError:
print("bad")答案: 5
为什么: 转换成功,所以跳过 except 分支。
运行结果是什么?
try:
print(int("x"))
except ValueError:
print("invalid")答案: invalid
为什么: 转换失败,所以处理代码打印 invalid。
这段程序打印出什么?
order = {}
try:
print(order["price"])
except KeyError:
print("missing")答案: missing
为什么: 键不存在,所以执行 KeyError 处理代码。
代码的输出结果是什么?
try:
print("try", end=" ")
finally:
print("finally")答案: try finally
为什么: finally 总会执行,第一个 print 没有换行。
先试一遍题目
打开 Python 错误处理 练习页,用即时反馈回答同样的 12 道题。