您好,登录后才能下订单哦!
密码登录
            
            
            
            
        登录注册
            
            
            
        点击 登录注册 即表示同意《亿速云用户服务条款》
        # 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
except:语句,应指定具体异常类型logging模块记录异常信息with语句处理文件等资源通过合理使用异常处理机制,可以显著提升Python程序的可靠性和可维护性。 “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。