处理多个异常
本课属于 Coddy Python 学习旅程的“逻辑与流程”单元。第 65 课,共 78 课。
在 Python 中,我们可以在不同的 except 代码块中处理不同类型的异常。这样,我们就能根据发生的具体错误采取不同的处理方式。
从基本的 try-except 结构开始:
try:
# 可能引发异常的代码
pass
except Exception as e:
# 处理任何异常
pass要处理多个异常,请添加特定的 except 代码块:
try:
number = int(input("Enter a number: "))
result = 10 / number
print(result)
except ValueError:
print("That's not a valid number!")
except ZeroDivisionError:
print("Cannot divide by zero!")你也可以在一个 except 代码块中捕获多种异常类型:
try:
# 一些代码
pass
except (ValueError, TypeError):
print("Invalid input type!")except 块的顺序很重要,总是要把更具体的异常放在更一般的异常之前。
挑战
简单创建一个名为 process_data 的函数,它:
- 接收一个表示潜在数据的字符串输入
- 尝试将其转换为整数,然后计算 100 除以该整数
- 返回结果
- 处理至少 3 种可能的异常:
- 如果输入无法转换为整数,则处理
ValueError(打印 "Input must be a number!") - 如果输入为 0,则处理
ZeroDivisionError(打印 "Cannot divide by zero!") - 使用通用处理程序处理其他任何异常(打印 "An unexpected error occurred!")
- 如果输入无法转换为整数,则处理
亲手试试
def process_data(input_string):
try:
# 尝试将输入字符串转换为整数
# 计算 100 除以输入值的结果
# 返回结果
except ValueError:
# 处理输入无法转换为整数的情况
except ZeroDivisionError:
# 处理输入为零的情况
except:
# 处理其他意外异常
return None这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: Python 在线编译器