java - 异常和错误之间的区别

标签 java exception throwable

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

最佳答案

不应捕获或处理错误(除非在极少数情况下)。异常是异常处理的基础。 Javadoc解释得很好:

An Error is a subclass of Throwable that indicates serious problems that a reasonable application should not try to catch. Most such errors are abnormal conditions.

看看 Error 的几个子类,摘录他们的一些 JavaDoc 评论:

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

Throwable确实有三个重要的子类别:

  • Error - 出现了足够严重的错误,大多数应用程序应该崩溃而不是尝试处理问题,
  • 未经检查的异常(又名 RuntimeException )- 通常是编程错误,例如 NullPointerException或非法论证。应用程序有时可以处理此问题或从中恢复 Throwable类别 - 或者至少在线程的 run() 中捕获它方法,记录投诉并继续运行。
  • 已检查异常(又名其他所有异常)- 应用程序应能够捕获其余异常并对其进行有意义的操作,例如 FileNotFoundExceptionTimeoutException ...

关于java - 异常和错误之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58516892/

相关文章:

java - 带有连接器/J 的 NetBeans

java - aroundInvoke 和检查异常

java - 我如何调用该程序中的方法?

java - 显示/隐藏 h :inputText on selection of h:selectOneMenu

java - 为 @ExceptionHandler 中的每个异常生成正确的状态

java - 在调用 CompletableFuture.completeExceptionally(Throwable) 之前捕获 throwable 与异常

java - 比较两个 throwable 的正确方法是什么?

java - 确定哪种类型的异常是可抛出的

java - 是什么导致了 java.lang.ArrayIndexOutOfBoundsException 以及如何防止它?

c# - 如何创建一个Windows App(C#),在其中可以在消息框中显示各种对象中的所有异常