java - Java 中的错误类

标签 java exception

我正在尝试理解 Java 中的 Error 类。

我很了解Exception 类,但是找不到Error 类的代码示例。我试过搜索网络和 java.sun 网站,但没有找到任何有用的信息来帮助我更好地理解这一点。

我如何在程序中使用 Error 类以及我们必须在哪里使用它?

最佳答案

您没有在代码中使用 Error

Error 是一种特定的 Throwable,就像 Exception 一样。

  • Throwable是定义所有可以抛出的东西的基类。
  • Exception是常见的情况。它是关于在你的程序执行过程中发生的问题。
    • RuntimeException是一种特殊情况:它是未检查的(即它不需要通过方法声明并且编译器不会强制您捕获它)。
  • Error是“罕见”情况:它表示超出通常应用程序控制范围的问题:JVM 错误、内存不足、验证字节码的问题:这些是您不应该处理的事情,因为如果它们发生事情已经很糟糕了,你的代码不太可能能够理智地处理它。

您不应尝试纠正导致错误 的情况。您可能想要捕获它以便记录它然后重新抛出它(请参阅 ThreadDeath 的 JavaDoc 以了解为什么需要重新抛出它的示例(感谢 @krock 的提示))。

没有其他理由抛出任何 Error(即不要自己创建一个 Error 并抛出它,如果你认为你想这样做,请改用 ExceptionRuntimeException

关于java - Java 中的错误类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5217712/

相关文章:

java - 如何在 Ubuntu 中为 JNI C/C++ 库查找 JDK 目录

java - 选择未填充从其他表映射的值的选项

java - NullPointerException - onPause()

java - 我可以记录在第 3 方(外部)库中抛出和捕获的异常吗?

WPF 对 Automation Peer API 的递归调用无效

java - 处理类的 RunTimeExceptions

android - 为什么 Xamarin 不在另一个线程中抛出异常?

java - 如何在 Java 中使用 token 和公钥验证 JWT 签名

c - 为什么释放动态创建的 2D long long int 数组会在 c 中给出 SIGTRAP?

java - Spring 数据 neo4j LIKE 查询不起作用