Python中的异常处理函数:try、except、finally
Python是一种解释型、高级、通用型编程语言,被广泛用于数据处理、科学计算、人工智能、网络编程等方面。与其他编程语言相同,Python也有可能出现错误和异常,但是,在程序开发中,我们都希望程序能够运行稳定,即使出现了异常错误,也能够及时响应,控制异常发生的影响范围,保证程序的正常运行。这就需要用到Python中的异常处理函数try、except、finally。
1.异常处理函数try
当程序中出现异常错误时,Python会抛出一个异常对象,如果我们不对它进行处理,程序将会立即停止运行并且弹出错误信息。但是如果我们添加try语句,就可以捕获到异常,然后进行相应的处理,从而保证程序的正常运行。try代码块试图执行操作,但可能会抛出异常错误,导致程序停止运行。
try语句的语法格式如下:
try:
<可疑代码>
except <异常类型>:
<处理异常代码>
在try代码块中,如果出现了异常错误,Python会抛出一个指定类型的异常对象,然后跳转到except代码块中,执行相应的操作。否则,如果try代码块中没有出现异常错误,则直接跳过except代码块,执行紧接着的代码。
下面是try语句的一个简单例子:
try:
x = int(input('请输入一个整数:'))
print('你输入的整数是:', x)
except ValueError:
print('输入错误,请输入一个整数')
在上述例子中,当用户输入非整数时,会抛出一个ValueError类型的异常对象,然后执行except代码块中的操作,打印出一条提示信息。否则,直接输出用户输入的整数。
2.异常处理函数except
except语句主要用于捕获并处理指定类型的异常对象,以保证程序的稳定运行。在try-except语句中,except代码块是可选的,但在有些情况下,可能需要添加多个except语句,以便处理多种类型的异常错误。
下面是格式如下:
try:
<可疑代码>
except <异常类型1>:
<处理异常代码1>
except <异常类型2>:
<处理异常代码2>
except:
<处理所有其他异常类型的代码>
在上述except语句中,我们可以指定多个异常类型来捕获并处理相应的异常对象。如果没有指定异常类型,则会处理所有其他未被指定的异常类型。如果有多个except语句,Python将按照顺序逐个查找合适的异常处理代码块。如果找到一个合适的异常处理代码块,则执行相应的操作,其他代码块将被忽略。
下面是一个使用多个except语句处理不同类型异常对象的例子:
try:
f = open('test.txt', 'r')
s = f.read()
print(s)
f.close()
except FileNotFoundError:
print('没有找到该文件')
except PermissionError:
print('没有权限打开该文件')
except:
print('文件操作错误')
3.异常处理函数finally
finally语句是与try语句配套使用的一种异常处理函数,用于定义一段无论 try 代码块中是否发生异常都会执行的代码。finally代码块中的代码会在try代码块中的所有代码执行完毕后执行。如果try代码块中出现异常错误,则except代码块中的代码会在finally代码块之前执行。
下面是finally语句的语法格式:
try:
<可疑代码>
except <异常类型>:
<处理异常代码>
finally:
<无论是否出现异常,都会执行的代码>
在上述finally语句中,我们可以在try-except代码块中添加一段代码,无论是否出现异常都会执行,通常用于释放资源、关闭文件等操作。
下面是一个使用finally语句定义释放资源的例子:
try:
f = open('test.txt', 'r')
s = f.read()
print(s)
except FileNotFoundError:
print('没有找到该文件')
finally:
print('关闭文件')
f.close()
在上述finally语句中,我们在try代码块中打开了文件,然后读取了文件内容。如果出现文件找不到的错误,则执行相应的except语句块。否则,继续执行finally语句块中的代码,关闭文件。
总结:try、except、finally是Python中的异常处理函数,可以保证程序的稳定运行。try语句用于监视异常错误,except语句用于捕获并处理指定类型的异常对象,finally语句用于定义一段无论是否出现异常都会执行的代码。在实际编程中,我们可以根据程序的实际需求使用不同的异常处理函数,以保证程序的正常运行。
