小编典典

异常与错误的区别

all

我正在尝试了解有关基本 Java 和不同类型的 Throwables 的更多信息,有人可以让我知道异常和错误之间的区别吗?


阅读 154

收藏
2022-07-06

共1个答案

小编典典

不应捕获或处理错误(极少数情况除外)。异常是异常处理的基础。Javadoc很好地解释了它:

Error 是 Throwable 的子类,表示合理的应用程序不应尝试捕获的严重问题。大多数此类错误是异常情况。

查看 的一些子类Error,获取它们的一些 JavaDoc 注释:

  • AnnotationFormatError- 当注释解析器尝试从类文件中读取注释并确定注释格式错误时抛出。
  • AssertionError- 抛出表示断言失败。
  • LinkageError- LinkageError 的子类表明一个类对另一个类有一些依赖;但是,后一个类在前一个类编译后发生了不兼容的变化。
  • VirtualMachineError- 抛出表示 Java 虚拟机已损坏或已用完继续运行所需的资源。

实际上有三个重要的子类别Throwable

  • Error- 出现了足够严重的问题,大多数应用程序应该崩溃而不是尝试处理问题,
  • 未经检查的异常 (aka RuntimeException) - 经常是编程错误,例如一个NullPointerException或一个非法参数。应用程序有时可以处理或从这个Throwable类别中恢复——或者至少在 Thread 的run()方法中捕获它,记录投诉并继续运行。
  • Checked Exception (aka Everything else) - 应用程序应该能够捕获并有意义地对其余部分做一些事情,例如FileNotFoundExceptionTimeoutException......
2022-07-06