在Python中,捕获异常并继续执行是一项重要的编程技术,它允许程序在遇到错误时不会立即崩溃,而是通过处理异常来保持程序的正常运行。这对于提高程序的健壮性和用户体验至关重要。
1. 使用try-except块
捕获异常的基本方法是使用try-except
块。在try
块中放置可能引发异常的代码,在except
块中处理异常。
try:
# 可能引发异常的代码
result = 10 / 0
except ZeroDivisionError:
# 处理除零异常
print("不能除以零!")
result = None
2. 捕获多种异常
你可以在except
块中指定多种异常类型,以处理不同类型的错误。
try:
# 可能引发多种异常的代码
result = eval(input("请输入一个数学表达式: "))
except (ZeroDivisionError, SyntaxError, NameError):
# 处理除零、语法和名称错误
print("输入有误!")
result = None
3. 使用else块
else
块在try
块成功执行且未引发异常时执行。
try:
# 可能引发异常的代码
result = int(input("请输入一个整数: "))
except ValueError:
# 处理非整数输入
print("请输入整数!")
else:
# 处理成功输入
print(f"你输入的整数是: {result}")
4. 使用finally块
finally
块在try
块执行完毕后总是执行,无论是否引发异常。它通常用于清理资源或执行必要的后续操作。
try:
# 可能引发异常的代码
with open("file.txt", "r") as file:
data = file.read()
except FileNotFoundError:
# 处理文件未找到错误
print("文件未找到!")
finally:
# 总是执行的代码
print("操作完成。")
5. 重新引发异常
有时你可能希望在处理异常后重新引发它,以便调用者能够处理它。
try:
# 可能引发异常的代码
result = 10 / 0
except ZeroDivisionError as e:
# 处理除零异常并重新引发
print("不能除以零!")
raise e
通过这些技术,你可以在Python中有效地捕获异常并继续执行程序,从而提高程序的可靠性和用户体验。记得在编写代码时始终考虑异常情况,并采取适当的措施来处理它们。