java调用返回语句或系统。在“尝试或抓住”挡块上退出
我在采访中被问到以下问题:
What will happen if one calls a return statement or System.exit on try or catch block ? Will finally block execute?
finally块总是被执行吗
编辑: 在java中尝试上述操作后:
如果我在try块或catch块中放入return语句,但是
finally
如果我调用系统,块不会运行。退出尝试或抓住
但我不明白背后的原因
# 1 楼答案
根据the tutorials from Oracle:
这句话似乎暗示:
System.exit(0)
,则finally
块将不会执行(,因为调用该语句时Java VM会退出)return
语句时,它将执行(,因为调用该语句时Java VM不会退出)李>你可以用我快速编写的一些代码来确认这一点:
这里,当在
try
块中调用return
时,“finally”仍然输出到terminal,但当在catch
块中调用System.exit(0)
时,它不是