Menu
CoddyTech

处理多个异常

本课属于 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 块的顺序很重要,总是要把更具体的异常放在更一般的异常之前。

challenge icon

挑战

简单

创建一个名为 process_data 的函数,它:

  1. 接收一个表示潜在数据的字符串输入
  2. 尝试将其转换为整数,然后计算 100 除以该整数
  3. 返回结果
  4. 处理至少 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
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: Python 在线编译器