您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。