java - 如何确定异常是编译时检查还是运行时检查?

标签 java exception exception-handling

我正在查看 RuntTimeException 类,但它未在编译时检查。为什么一个类在编译时不被检查而在运行时不被检查

https://docs.oracle.com/javase/7/docs/api/java/lang/RuntimeException.html

               | Throwable |
               +-----------+
                /         \
               /           \
      +-------+          +-----------+
      | Error |          | Exception |
      +-------+          +-----------+
       /  |  \           / |        \
     \________/        \______/      \
      unchecked                   checked
                +------------------+
                | RuntimeException |
                +------------------+
                  /   |    |      \
                \_________________/

                   unchecked
  1. RuntimeException 类扩展了 Exception 类但仍未检查?如何?。
  2. 编译器如何决定是否应在运行时编译 时检查此类?

最佳答案

RuntimeException class extends Exception class and still is unchecked? How?.

这是一种设计选择。 Java 语言的设计者决定 RuntimeException 和 Error,以及扩展它们的类根据定义是未经检查的异常。所以这只是语言的规则。

How does the compiler decides whether this class should be checked in runtime or compile time?.

编译器检查抛出的异常类型。如果它是 RuntimeException 或 Error,则异常未检查。

关于java - 如何确定异常是编译时检查还是运行时检查?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27424855/

相关文章:

python - Python 中的 SyntaxError 不一致?

java - USB 键盘楔形条码读取器是否调用按键事件?

java - 在 JPanel 之间传递数据

java - 如果列同时具有字符串和整数值,如何按 HQL 对列进行排序

c# - Exception.Message 与 Exception.ToString()

c++ - throw/catch on stack unwind 是否安全?

java - 如何从源文件夹将图像添加到 JFrame 中?

Java:抛出异常而不是特定异常的原因是什么?

c# - 为什么我们不抛出这些异常?

javascript - 在 JavaScript 中抛出多个异常