Java:是尝试执行所有行,还是跳转捕捉?

Java:是尝试执行所有行,还是跳转捕捉?,java,try-catch,order-of-execution,Java,Try Catch,Order Of Execution,我想知道java try-catch语句的执行路径,但找不到以下情况的详细信息 如果我有以下陈述: try { // Make a call that will throw an exception thisWillFail(); // Other calls below: willThisExecute(); } catch (Exception exception) { // Catch the exception } thisWillFail()下面的行是在移动

我想知道java try-catch语句的执行路径,但找不到以下情况的详细信息

如果我有以下陈述:

try {

  // Make a call that will throw an exception
  thisWillFail();

  // Other calls below:
  willThisExecute();

} catch (Exception exception) {
  // Catch the exception
}
thisWillFail()下面的行是在移动到catch之前执行的,还是在抛出异常时try语句的执行会跳转到catch

换句话说,假设调用“a”之后的调用“b”将执行,前提是调用“a”不会在try语句中引发异常,这是否安全


谢谢

如果try子句中包含的任何子句生成错误,将执行catch子句中的代码(对应于该错误-一次尝试可以有多个catch)。没有办法预先知道某个特定子句是否会失败,只能在错误发生后尝试恢复


换句话说,只要
thisWillFail()
函数抛出异常,就会执行catch子句,从而绕过
willThisExecute()
函数。

为什么不自己测试一下呢


一旦抛出异常,try块将被放弃,并在
catch/finally
语句处继续执行。

否,下面的
thisWillFail()
行将不会执行。执行将移动到catch块。

它不会在try块中执行任何进一步的指令,它将跳转到catch块并执行catch块。然后它将最终执行(请记住,无论是否存在任何异常,在任何情况下都将执行finally)。要进一步阅读,这里有一个很好的文章行([)

是什么阻止了你去尝试呢?除了时间什么都没有,但我认为这对其他人来说也是一个有用的问题,因为我不容易找到答案。我选择你的答案是因为它直截了当,切中要害,尽管其他答案也都是正确和有用的。