全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页
📅 2026-05-19 5 分钟 ✍️ juanwangdev

Python try-except语句

try-except 用于捕获和处理异常,防止程序因错误而中断。

基本语法

标准结构

Python
try:
    # 可能出错的代码
    risky_code()
except:
    # 异常处理代码
    handle_error()

基本示例

Python
try:
    result = 10 / 0
except:
    print("发生错误")

# 输出:发生错误

捕获特定异常

指定异常类型

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

多种异常类型

Python
try:
    value = int("abc")
except ValueError:
    print("值转换错误")
except TypeError:
    print("类型错误")

元组捕获多种异常

Python
try:
    value = int("abc")
except (ValueError, TypeError):
    print("转换错误")

获取异常对象

使用 as 关键字

Python
try:
    value = int("abc")
except ValueError as e:
    print(f"错误信息: {e}")

# 输出:错误信息: invalid literal for int() with base 10: 'abc'

获取异常类型

Python
try:
    result = 10 / 0
except ZeroDivisionError as e:
    print(f"异常类型: {type(e).__name__}")
    print(f"异常信息: {e}")

# 异常类型: ZeroDivisionError
# 异常信息: division by zero

实际应用

文件操作

Python
try:
    with open("data.txt", "r") as f:
        content = f.read()
except FileNotFoundError:
    print("文件不存在")
except PermissionError:
    print("无权限访问")

用户输入处理

Python
try:
    age = int(input("请输入年龄: "))
    if age < 0:
        raise ValueError("年龄不能为负")
except ValueError as e:
    print(f"输入错误: {e}")

网络请求

Python
try:
    response = requests.get("https://api.example.com")
    data = response.json()
except requests.RequestException as e:
    print(f"请求失败: {e}")

异常链

try 内嵌套 try

Python
try:
    try:
        value = int("abc")
    except ValueError:
        print("内层处理")
        raise  # 继续抛出
except ValueError:
    print("外层处理")

异常捕获原则

不要捕获所有异常

Python
# 不推荐
try:
    do_something()
except:  # 捕获所有异常,包括系统异常
    print("出错")

# 推荐:捕获具体异常
try:
    do_something()
except ValueError:
    print("值错误")
except TypeError:
    print("类型错误")

精确捕获

Python
try:
    result = 10 / int(input("请输入数字: "))
except ValueError:
    print("输入必须是数字")
except ZeroDivisionError:
    print("不能输入0")

异常处理流程

text
try → 可能出错代码 → 正常执行 → 跳过 except
                  ↓
                异常 → 检查 except → 匹配 → 执行处理
                                 ↓
                               不匹配 → 继续向外抛出

要点总结

  1. try 放可能出错的代码,except 放处理代码
  2. 指定具体异常类型,避免捕获所有
  3. 使用 as 获取异常对象和错误信息
  4. 多异常用元组合并捕获
  5. 异常处理要精确,不掩盖问题

📝 发现内容有误?点击此处直接编辑

← 上一篇 Python finally子句
下一篇 → Python多异常捕获
想查看更多题目和详细解析?
小程序提供完整的题库、模拟考试和详细解析
马上就来

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库