异常处理无法访问的代码

时间:2017-09-10 20:02:51

标签: java exception-handling

以下是我的代码,当我评论语句-2时,它会遵守罚款,但当我取消注释时,它会给出编译时错误"Unreachable Code"

我理解为什么我在取消注释后会出现错误,但我的问题是,即使我发表评论仍然bad()无法访问,因为我throwing一个例外是捕获然后为什么它不给它的错误?

class Varr 
{
  public static void main(String[] args) throws Exception
  { 
    System.out.println("Main");
    try {
      good();
    } catch (Exception e) {
      System.out.println("Main catch");
      //**Statement 1**    
      throw new RuntimeException("RE");
    } finally {
      System.out.println("Main Finally");
      //  **Statement 2**    
      throw new RuntimeException("RE2");
    }
    bad();
  }
}

1 个答案:

答案 0 :(得分:4)

  

但我的问题是,即使我评论它仍然是坏()是   无法访问,因为我抛出一个例外是捕获然后为什么它不是   给它错误?

因为执行无需输入catch声明 假设good()没有抛出任何异常,因此您不会输入catch,因此会执行bad()

public static void main(String[] args) throws Exception
{   
    System.out.println("Main");
    try {
        good(); // doesn't throw an exception
    } catch (Exception e) { 
        System.out.println("Main catch");
        throw new RuntimeException("RE");
    }
    bad(); // execution goes from good() to here
}