Python异常处理通过try...except
语句实现,用于捕获并处理代码运行中的错误,提升程序健壮性。以下是核心要点及示例:
一、基础语法结构
try:
# 可能引发异常的代码
result = 10 / 0
except ZeroDivisionError:
print("除数不能为0!")
-
try
块:包含可能出错的代码。 -
except
块:捕获并处理特定异常(如ZeroDivisionError
)。
二、捕获多种异常
-
多个
except
块 :分别处理不同异常类型try: value = int("abc") result = 10 / 0 except ValueError: print("输入无效!") except ZeroDivisionError: print("除数不能为0!")
-
异常类型元组 :一次性捕获多种异常
try: # 可能引发多种异常的代码 except (ValueError, ZeroDivisionError): print("捕获到异常:", e)
三、捕获所有异常
使用空except
块可捕获所有异常,但需谨慎使用,避免掩盖重要错误
try:
# 可能引发异常的代码
except:
print("发生未知错误!")
四、异常处理进阶技巧
-
else
和finally
块-
else
:无异常时执行 -
finally
:无论是否异常都会执行(如资源释放)
try: file = open("data.txt", "r") content = file.read() except FileNotFoundError: print("文件不存在") else: print("文件读取成功") finally: if 'file' in locals(): file.close()
-
-
自定义异常 :创建继承自
Exception
的类class ValidationError(Exception): def __init__(self, message): super().__init__(message)
五、注意事项
-
具体异常捕获优先 :避免使用裸
except
,明确处理预期错误。 -
异常链处理 :通过
as e
获取异常对象,便于调试。 -
资源管理 :使用
with
语句自动管理文件等资源。
通过合理使用异常处理,可有效避免程序崩溃,提升用户体验和代码可维护性。