我正在学习面向对象编程的考试,我想知道是否有任何情况需要考虑以下代码:
try {
do something
} catch (someException e) {
} finally {
do something
}
finally
代码块不会被执行吗?
我正在学习面向对象编程的考试,我想知道是否有任何情况需要考虑以下代码:
try {
do something
} catch (someException e) {
} finally {
do something
}
finally
代码块不会被执行吗?
是的。如果您通过本地代码崩溃Java虚拟机或以其他方式搞砸了程序,导致程序终止,或在try
块内无限循环/等待。
这些是唯一避免执行finally
块的三种情况。
try
еқ—дёӯзҡ„д»Јз ҒеңЁжӯЈеёёжғ…еҶөдёӢйҖҖеҮәпјҲеҢ…жӢ¬жӯЈеёёејӮеёёпјүж—¶пјҢfinally
еқ—зҡ„жү§иЎҢжҳҜжңүдҝқйҡңзҡ„пјҢиҝҷжҳҜеҚҸи®®зҡ„дёҖйғЁеҲҶгҖӮ - Jason S如果控制流程从try或catch块中退出,finally块将绝对被执行。如果你以某种方式阻止控制流程从这些块中退出:
通过编写exit语句,或者
无限循环等。
那么finally块将不会被执行。 通常我们编写finally块是为了"清理"目的。