Python中的异常处理函数(try、except、finally)
Python的异常处理机制能够帮助我们在程序出现异常时,能够捕捉、处理、控制异常,防止程序崩溃、造成损失。在Python中使用try、except、finally三个关键字可以完成异常处理的功能。
try语句块
try语句块用于捕捉可能出现异常的代码,当代码正常执行时,不会抛出异常,可以跳过except语句块,执行finally语句块。当try语句块中的代码出现异常时,程序会跳转到except语句块中执行相应处理,最后执行finally语句块。
语法格式:
try:
#可能发生异常的代码
except 错误类型(Exception):
#发生异常时的处理
finally:
#无论是否发生异常都需要执行的代码
#例子:
try:
f = open("test.txt","r")
f.write("Hello World")
except IOError:
print("Error: 没有找到该文件或读取文件失败")
finally:
print("这句话,无论异常是否发生,都会执行")
以上例子中,程序试图打开一个不存在的文件并试图写入字符,这样的操作会引发IOError异常。except语句块捕捉到异常并输出错误信息,最后执行finally语句块输出一句话作为结束语。
except语句块
except语句块用于处理try语句块中出现的异常,如果try语句块捕捉到了异常,就会跳转到except语句块中执行,可以根据异常类型,对相应的异常进行处理。
语法格式:
try:
#可能发生异常的代码
except 错误类型1(Exception):
#发生错误类型1时的处理
except 错误类型2(Exception):
#发生错误类型2时的处理
else:
#未出现异常时需执行的操作
#例子:
try:
a = int(input("请输入一个数字:"))
print(a)
except ValueError:
print("您输入的不是数字")
else:
print("您输入的是数字")
以上例子中,程序会提示用户输入一个数字,如果用户输入的不是数字,程序会捕捉到ValueError异常,并输出错误消息,如果输入的是数字,则会输出输入的数字。
finally语句块
finally语句块无论try语句块中是否出现异常,都会执行。通常try语句块中用于打开文件、网络连接,以及一些需要清楚数据或释放资源的操作。
语法格式:
try:
#可能发生异常的代码
except 错误类型1(Exception):
#发生错误类型1时的处理
except 错误类型2(Exception):
#发生错误类型2时的处理
finally:
#try语句块结束后,一定执行
#例子:
try:
f = open('example.txt', 'r')
content = f.read()
print(content)
except FileNotFoundError:
print('文件不存在')
finally:
f.close()
以上例子中,程序通过打开一个文件读取文件内容,如果文件不存在,会捕捉到FileNotFoundError异常,并输出错误信息。finally语句块用于关闭文件,无论是否有异常都会执行,保证文件的完整性。
总结:
Python的异常处理机制提供了try、except、finally三个关键字,可以帮助我们捕捉和处理可能出现的异常,保证程序的健壮性和稳定性,同时也可以保护程序的数据完整性和安全性。我们可以针对不同的异常类型,进行不同的处理,可以使程序更加智能、高效。
