Python中异常处理的核心语句为try-except
,用于捕获并处理程序运行时可能出现的错误。以下是关键要点:
一、基本结构
try:
# 可能引发异常的代码
risky_code()
except SomeException as e:
# 处理该异常
print(f"发生错误: {e}")
-
try块 :包含可能抛出异常的代码。
-
except块 :捕获并处理特定类型的异常,
SomeException
为异常类型,as e
用于获取异常对象以便调试。
二、扩展结构
-
else块 :当try块无异常时执行,用于清理或验证操作。
-
finally块 :无论是否发生异常,都会执行,常用于释放资源(如关闭文件)。
三、常见异常类型
-
内置异常 :如
ZeroDivisionError
(除零错误)、ValueError
(值错误)、FileNotFoundError
(文件未找到)等。 -
自定义异常 :通过
raise
语句抛出,如MyStupidError
。
四、异常处理**实践
-
多重捕获 :按具体异常类型顺序捕获,避免隐藏更严重的错误。
-
记录日志 :使用
with open('except.log', 'w') as f
记录异常信息。 -
资源管理 :使用
with
语句自动管理文件、数据库连接等资源。
五、示例
try:
num = int(input("输入数字: "))
result = 100 / num
print(f"结果: {result}")
except ValueError:
print("输入无效!")
except ZeroDivisionError:
print("除数不能为零!")
else:
print(f"计算成功: {result}")
finally:
print("处理结束。")
该示例同时处理用户输入错误和除零错误,并在最后执行清理操作。