逻辑描述
else
代码块:当try
块中没有发生异常时,else
块中的代码会被执行。它提供了一种将没有异常时的正常逻辑与try
块分开的方式,这样可以使try
块专注于捕获异常,而不是混杂正常逻辑。
finally
代码块:无论try
块中是否发生异常,也无论异常是否被except
块捕获,finally
块中的代码都会被执行。它通常用于执行一些清理操作,比如关闭文件、释放资源等。
代码示例
try:
num1 = 10
num2 = 2
result = num1 / num2
except ZeroDivisionError:
print("除数不能为零")
else:
print("计算结果:", result)
finally:
print("这是finally块,总是会执行")
不同异常情况分析
- 无异常情况:
try
块正常执行,然后执行else
块,最后执行finally
块。
- 有异常情况:
try
块遇到异常,执行对应的except
块,然后执行finally
块,else
块不会执行。例如将num2
改为0,此时try
块触发ZeroDivisionError
异常,except
块捕获并打印错误信息,接着执行finally
块,而else
块不执行。