Python捕捉异常举例分析

发布时间:2021-12-05 13:20:32 作者:iii
来源:亿速云 阅读:180
# Python捕捉异常举例分析

异常处理是Python编程中保证程序健壮性的重要机制。通过`try-except`结构,开发者可以优雅地处理运行时错误,避免程序意外崩溃。本文将通过典型示例分析Python中的异常捕捉方法。

## 一、基础异常捕捉结构

```python
try:
    # 可能引发异常的代码
    result = 10 / 0
except ZeroDivisionError:
    # 处理特定异常
    print("错误:除数不能为零")

这是最基本的异常处理形式: - try块包含可能出错的代码 - except捕获指定异常类型 - 当异常发生时,程序跳转到对应except块执行

二、多异常处理

可以同时捕获多种异常类型:

try:
    data = {"key": "value"}
    print(data["nonexistent_key"])
    val = int("abc")
except (KeyError, ValueError) as e:
    print(f"发生错误:{type(e).__name__} - {str(e)}")

输出结果:

发生错误:KeyError - 'nonexistent_key'

三、完整异常处理结构

try:
    file = open("nonexistent.txt")
except FileNotFoundError as e:
    print(f"文件错误:{e}")
else:
    print("文件打开成功")  # 仅当try块无异常时执行
finally:
    print("清理操作")  # 无论是否异常都会执行

关键组件: - else:无异常时执行 - finally:始终执行的清理代码

四、自定义异常示例

class NegativeNumberError(Exception):
    """自定义异常类"""
    pass

def sqrt(x):
    if x < 0:
        raise NegativeNumberError("负数没有实数平方根")
    return x ** 0.5

try:
    print(sqrt(-1))
except NegativeNumberError as e:
    print(f"自定义异常:{e}")

输出:

自定义异常:负数没有实数平方根

五、异常链处理

Python 3.6+支持异常链:

try:
    try:
        1/0
    except ZeroDivisionError as e:
        raise ValueError("转换错误") from e
except Exception as e:
    print(f"主异常:{e}")
    print(f"原始异常:{e.__cause__}")

输出:

主异常:转换错误
原始异常:division by zero

六、最佳实践建议

  1. 精确捕获:避免空except:语句,应指定具体异常类型
  2. 异常日志:使用logging模块记录异常信息
  3. 资源管理:优先使用with语句处理文件等资源
  4. 异常转换:在适当层级将底层异常转换为业务异常

通过合理使用异常处理机制,可以显著提升Python程序的可靠性和可维护性。 “`

推荐阅读:
  1. Python异常原理及异常捕捉实现的示例分析
  2. 如何在python中 自定义异常和捕捉异常

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:Hibernate中Sessin接口常用方法有哪些

下一篇:Hibernate SessionFactory是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》