一尘不染

Java异常和错误之间的区别

java

我试图学习有关基本Java和不同类型的Throwables的更多信息,有人可以让我知道Exception和Errors之间的区别吗?


阅读 470

收藏
2020-03-13

共1个答案

一尘不染

错误不应该被发现或处理(在极少数情况下除外)。异常是异常处理的基础。该Javadoc中解释说得好:

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

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

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

  • Error -严重的错误已经出了,大多数应用程序应该崩溃而不是尝试解决问题,

  • 未检查的异常(aka RuntimeException)-通常是编程错误,例如a NullPointerException或非法参数。应用程序有时可以处理或从该Throwable类别中恢复-或至少使用Thread的run()方法来捕获它,记录投诉并继续运行。
  • Checked Exception(又名“其他所有内容”)-期望应用程序能够捕获其余内容并有意义地执行某些操作,例如FileNotFoundExceptionand TimeoutException...
2020-03-13