是try-catch而最终没有和try-catch一样吗?

时间:2014-10-02 10:33:35

标签: exception-handling try-catch finally

我真的不明白使用finally块... 在try-catch块中,无论我们最终是否使用,我们都可以获得相同的代码运行。 例如,这些代码之间有什么区别:

   try
   {
       System.out.println(1/0);
   }
   catch(ArithmeticException e)
   {
       System.out.println("Error");
   }
   finally
   {
       System.out.println("After try-catch");
   }

和此:

   try
   {
       System.out.println(1/0);
   }
   catch(ArithmeticException e)
   {
       System.out.println("Error");
   }

   System.out.println("After try-catch");

运行代码的输出或层次结构的逻辑差异是什么?

1 个答案:

答案 0 :(得分:1)

finally始终执行,但在某些情况下,例如System.exit()调用或线程突然退出。

与往常一样,JLS定义了所有行为