欢迎访问宙启技术站
智能推送

Python中的异常处理函数(try、except、finally)

发布时间:2023-06-13 10:16:51

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三个关键字,可以帮助我们捕捉和处理可能出现的异常,保证程序的健壮性和稳定性,同时也可以保护程序的数据完整性和安全性。我们可以针对不同的异常类型,进行不同的处理,可以使程序更加智能、高效。