Ali*_*jas 6 exception try-finally python-3.x
我想如果我使用“try”并且只使用“finally”else,没有任何“except”,如果“try”语句无法执行,则应该执行“finally”语句,但之后,应该会出现错误在执行中显示,但在这个简单的代码中,我故意强制执行无效操作,错误永远不会跳转。为什么?
def division_peligrosa(a, b):
try:
a = float(a); b = float(b)
return a/b
finally:
return "Aquí va haber un error..."
print (division_peligrosa(5,0))
print (division_peligrosa("dividendo",28.3))
print ("\nFin del programa, ¡pero nada ocurre!\n")
Run Code Online (Sandbox Code Playgroud)
pla*_*pus 10
您可以在有关try 语句的部分中找到记录:
如果 finally 子句执行 return、break 或 continue 语句,则丢弃保存的异常。
当然,它是记录在案的行为这一事实并不能完全解释推理,因此我提供了这一点:函数只能以两种方式之一退出,即返回值或引发异常。它不能两者兼而有之。
由于 finally 块通常用作清理处理程序,因此返回优先在这里是有意义的。您确实有机会在 finally 内重新引发任何异常,只需不使用 return 语句即可。
| 归档时间: |
|
| 查看次数: |
3923 次 |
| 最近记录: |