Python中异常捕获与处理的方法总结
异常处理
在程序运行过程中,如果发生了异常错误,会导致程序直接停止运行。为了让程序可以更健壮地运行,需要对这些异常进行捕获和处理。
在Python中,异常处理使用 try/except
语句实现。通常的结构如下:
try:
# 可能会出现异常的代码块
pass
except ExceptionType:
# 处理异常的代码块
pass
其中,ExceptionType
一般指异常的类型,如 ValueError
、TypeError
、ZeroDivisionError
等。
如果try块中的代码出现了 ExceptionType
异常,那么except块中的代码将会被执行。
如果 ExceptionType
没有指定,那么会捕获所有异常。
多重异常处理
一个 try
块可以对应多个 except
块,进行多重异常处理。需要注意的是,如果多个异常有继承关系,则应先处理子类异常,再处理父类异常。
try:
# 代码块
pass
except ExceptionType1:
# 处理 ExceptionType1 类型的异常
pass
except ExceptionType2:
# 处理 ExceptionType2 类型的异常
pass
except:
# 处理其他异常
pass
finally 子句
try
块可以带有一个 finally
子句,无论 try
块是否抛出异常,总会执行 finally
块中的代码。
try:
# 代码块
pass
except:
# 异常处理
pass
finally:
# 总是会执行的代码块
pass
示例
基本异常处理
try:
num1 = int(input("请输入一个整数:"))
num2 = int(input("请输入另一个整数:"))
print(num1/num2)
except ZeroDivisionError:
print("除数不能为0")
except ValueError:
print("输入数据类型错误")
在这个示例中,我们用 try
块包裹了进行除法运算的代码,如果发生 ZeroDivisionError
异常,那么会执行 except
块内的代码。如果发生其他类型的异常,会执行相应的异常处理代码。
finally使用
try:
f = open('hello.txt', 'r')
print(f.read())
except FileNotFoundError:
print("找不到指定文件")
finally:
f.close()
在这个示例中,我们打开了一个文件并读取了其中内容。如果文件不存在,则抛出 FileNotFoundError
异常,执行对应的异常处理代码;如果文件存在,则正常读取并打印文件中的内容。无论是哪种情况,最后都会执行 finally
块中的代码,关闭文件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中异常捕获与处理的方法总结 - Python技术站