赞
赏
在 Python 中,当我们使用 try except 捕获 异常 时,如果希望仅仅当异常没有发生时,继续执行其他的逻辑,那么这时候,我们可以使用 else 语句。
在我们使用 try except else 结构时,同样可以使用 finally 分支,表示一定要执行的代码逻辑。
try:
# 需要检测异常的代码
except Exception:
# 异常处理逻辑
else:
# 异常没有发生时的逻辑
我们使用 try except else 语句实现了捕获异常的同时,如果异常没有发生,那么执行 else 的逻辑。如果异常发生了,则不会执行 else 的逻辑。
try:
# 需要检测异常的代码
except Exception:
# 异常处理逻辑
else:
# 异常没有发生时的逻辑
finally:
# 最终一定要执行的逻辑
我们在使用 try except else 语句时,后面同样可以加上 finally 字句,表示一定要执行的代码逻辑。
使用 try except else捕获异常,如果异常没发生,则执行 else 逻辑
if __name__ == '__main__':
print("嗨客网(www.haicoder.net)")
try:
num = input("Please input a number:")
print("Your input is:", int(num))
except Exception as e:
print("Exception :", e)
else:
print("well done")
程序运行后,控制台输出如下:
我们在捕获 Exception 异常时,使用了 else 语句,实现了如果异常没有发生,也就是没有走到 except 分支, 那么就执行 else 的代码块,这次运行的时候,因为我们输入了一个 字符串 而非 int。
因此,这次执行失败,走到了 except 分支,所以没有执行 else 分支的代码,我们再次输入合法的 int 类型的数字,再次运行程序后,控制台输出如下:
这次,我们输入了合法的 int 类型的数字,因此没有执行 except 分支的代码,执行了 else 分支的代码,因此,else 实现的功能是如果 except 分支不执行,则执行 else。
使用 try except else finally 捕获异常,finally 字句同样表示一定要执行的逻辑
if __name__ == '__main__':
print("嗨客网(www.haicoder.net)")
try:
num = input("Please input a number:")
print("Your input is:", int(num))
except Exception as e:
print("Exception :", e)
else:
print("well done")
finally:
print("Call finally")
程序运行后,控制台输出如下:
运行该程序时,我们输入了一个字符串,因此,程序执行了 except 分支,同时,我们看到 finally 字句的逻辑也被执行了。现在,我们再次输入合法的 int 类型的数字,再次运行程序后,控制台输出如下:
这次,我们输入了合法的 int 类型的数字,因此,没有执行 except 分支,而是执行了 else 分支,但 finally 分支同样被执行了。
在 Python 中,当我们使用 try except 捕获异常时,如果希望仅仅当异常没有发生时,继续执行其他的逻辑,那么这时候,我们可以使用 else 语句。
在我们使用 try except else 结构时,同样可以使用 finally 分支,表示一定要执行的代码逻辑。