当我在 while 循环中使用finally 时,我试图理解该机制。
在下面的代码中。终于在行打印并比 while 中断。我预计代码不会到达finally 块。或者如果它到达finally块,则有no break在那里,所以这段时间应该继续..任何人都可以解释这是如何工作的吗?
while(true){
System.out.println("in while");
try{
break;
}finally{
System.out.println("in finally");
}
}
System.out.println("after while");
输出是
in while
in finally
after while
虽然你break
保证try执行时finally总是被执行。你无法停止将控件输入到finally中。
https://docs.oracle.com/javase/tutorial/essential/exceptions/finally.html https://docs.oracle.com/javase/tutorial/essential/exceptions/finally.html
当 try 块退出时,finally 块总是执行。这确保即使发生意外异常,finally 块也会被执行。但finally 的用途不仅仅是异常处理——它允许程序员避免清理代码被返回、继续或中断意外绕过。
这种行为是有原因的。它对我们有帮助。
它允许程序员避免清理代码被返回、继续或中断意外绕过。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)