分析以下代码,它显示哪个异常? (异常处理,java)

时间:2016-02-17 12:32:44

标签: java exception-handling

class Test {
  public static void main(String[] args) {
    try {
      String s = "5.6";
      Integer.parseInt(s); // Cause a NumberFormatException

      int i = 0;
      int y = 2 / i;
    }
    catch (Exception ex) {
      System.out.println("NumberFormatException");
    }
    catch (RuntimeException ex) {
      System.out.println("RuntimeException");
    }
  }
}

正确的答案是程序有编译错误。我认为catch (Exception ex)会捕获所有异常,包括NumberFormatException,这是一个普遍的例外,它抓住了所有异常?

1 个答案:

答案 0 :(得分:3)

块:

catch (Exception ex) {
    System.out.println("NumberFormatException");
}

将捕获所有异常,因为Exception类是所有异常的基类。

当您抓住Exception时,您会抓住extend Exception的所有例外情况,这些例外情况都是如此。因此,它会产生错误 RuntimeException已被捕获