如何在Python中处理异常?
2025年9月17日 by admin
在 Python 中,异常处理用于捕获并处理程序中出现的错误,确保程序的稳定性。通过异常处理,可以避免程序崩溃,并采取适当的措施来处理错误。
Python 使用 try、except、else 和 finally 语句来处理异常。
try 和 excepttry 语句用于包含可能发生异常的代码块。如果 try 中的代码抛出异常,程序会跳转到相应的 except 语句处理异常。
try:
# 可能发生异常的代码
except ExceptionType:
# 处理异常的代码
try:
x = 10 / 0 # 会引发 ZeroDivisionError
except ZeroDivisionError:
print("除数不能为零")
输出:
除数不能为零
你可以通过多个 except 语句捕获不同类型的异常。例如,可以分别捕获 ZeroDivisionError 和 ValueError。
try:
num = int(input("请输入一个数字: ")) # 可能引发 ValueError
result = 10 / num # 可能引发 ZeroDivisionError
except ValueError:
print("请输入有效的数字")
except ZeroDivisionError:
print("除数不能为零")
else 语句如果 try 语句没有引发任何异常,那么 else 语句将会执行。else 语句通常用于在没有异常时执行一些操作。
try:
x = 10 / 2
except ZeroDivisionError:
print("除数不能为零")
else:
print("操作成功,结果为:", x)
输出:
操作成功,结果为: 5.0
finally 语句finally 语句会在 try 和 except 块之后无论是否发生异常都会执行。通常用于清理工作,如关闭文件、释放资源等。
try:
file = open("example.txt", "r")
# 执行文件操作
except FileNotFoundError:
print("文件未找到")
finally:
file.close() # 即使发生异常也会执行
print("文件已关闭")
如果你想捕获所有异常,而不是特定类型的异常,可以使用 except 后不指定异常类型。但这样做一般不推荐,因为捕获所有异常可能会隐藏程序中的潜在问题。
try:
x = 10 / 0
except:
print("发生了一个错误")
你可以通过 as 关键字获取异常对象,从而查看详细的错误信息。
try:
x = 10 / 0
except ZeroDivisionError as e:
print(f"发生异常: {e}")
输出:
发生异常: division by zero
try 来捕获异常。except 处理异常。else 在没有异常时执行代码。finally 进行清理操作,确保代码始终执行。as 获取。这种结构使得你能够灵活地管理程序中的错误,提高程序的健壮性和可维护性。