try-except #

使用try-except捕获和处理异常。

一、基本语法 #

python
try:
    result = 10 / 0
except ZeroDivisionError:
    print("除零错误")

二、捕获异常信息 #

python
try:
    result = int("abc")
except ValueError as e:
    print(f"错误:{e}")

# 获取异常类型
try:
    result = 1/0
except Exception as e:
    print(type(e).__name__)  # "ZeroDivisionError"
    print(e)  # "division by zero"

三、多个except块 #

python
try:
    value = int(input("输入数字:"))
    result = 10 / value
except ValueError:
    print("请输入有效数字")
except ZeroDivisionError:
    print("不能输入0")
except Exception as e:
    print(f"其他错误:{e}")

四、捕获多种异常 #

python
try:
    # 可能引发多种异常的代码
    result = some_operation()
except (ValueError, TypeError) as e:
    print(f"值或类型错误:{e}")

五、try-except-else #

python
try:
    result = 10 / 2
except ZeroDivisionError:
    print("除零错误")
else:
    print(f"结果:{result}")  # 无异常时执行

六、try-except-finally #

python
try:
    f = open('file.txt')
    content = f.read()
except FileNotFoundError:
    print("文件不存在")
finally:
    print("清理工作")  # 总是执行

# 文件操作最佳实践
try:
    with open('file.txt') as f:
        content = f.read()
except FileNotFoundError:
    print("文件不存在")

七、嵌套try #

python
try:
    try:
        result = 10 / 0
    except ZeroDivisionError:
        raise ValueError("转换后的错误")
except ValueError as e:
    print(e)

八、实际应用 #

python
def safe_divide(a, b):
    try:
        return a / b
    except ZeroDivisionError:
        return None
    except TypeError:
        raise TypeError("参数必须是数字")

def get_value(dictionary, key):
    try:
        return dictionary[key]
    except KeyError:
        return None

def convert_to_int(value):
    try:
        return int(value)
    except (ValueError, TypeError):
        return 0

九、总结 #

语句 说明
try 尝试执行的代码
except 捕获异常
else 无异常时执行
finally 总是执行
最后更新:2026-03-16