当 Python 程序出现异常时,如果我们能够对异常进行处理,就会使程序变得更加健壮。
Python 中用 try、except 和 finally 语句来实现异常处理。
- try:尝试执行一些可能会出现异常的代码,如果代码块中没有异常,则直接跳过 except 块;
- except:如果在 try 块中出现了异常,则跳转到 except 块中进行异常处理,并且执行 except 块中的代码;
- finally:无论是否出现异常,都会执行 finally 块中的代码。
try、except 和 finally 块的执行顺序如下:
- 首先,执行 try 块中的代码;
- 如果 try 块中出现了异常,则跳转到 except 块中执行异常处理,并忽略 finally 块;
- 如果 try 块中没有出现异常,则直接忽略 except 块,跳转到 finally 块执行代码;
- 如果 try 和 except 块都没有出现异常,则直接跳转到 finally 块执行代码。
下面通过代码示例,进一步说明 try、except 和 finally 块的执行顺序:
try:
a = 1/0
except ZeroDivisionError:
print('除数不能为0')
finally:
print('这是finally块,无论是否有异常都会执行')
输出:
除数不能为0
这是finally块,无论是否有异常都会执行
在这个例子中,我们在 try 块中尝试对数字 1 进行了除以 0 的操作,这样会产生 ZeroDivisionError 异常,然后程序跳转到 except 块处理异常,输出“除数不能为0”,最后跳转到 finally 块中输出“这是finally块,无论是否有异常都会执行”。
再来一个例子:
try:
a = 1/2
except ZeroDivisionError:
print('除数不能为0')
finally:
print('这是finally块,无论是否有异常都会执行')
输出:
这是finally块,无论是否有异常都会执行
在这个例子中,由于 1/2 并不会产生除以 0 的异常,所以 try 块中代码可以顺利执行,接着跳转到 finally 块中输出“这是finally块,无论是否有异常都会执行”。
总之,无论程序有没有发生异常,finally 块中的代码都将被执行,并可以用于释放资源或清理临时文件等操作。