异常和错误之间的差异

我正在尝试更多地了解基本Java和不同类型的Throwables,有人能告诉我异常和错误之间的区别吗?



BIG阳
浏览 476回答 3
3回答

炎炎设计

不应该捕获或处理错误(除了最罕见的情况)。例外是异常处理的基础。该Javadoc中解释说得好:Error是Throwable的子类,表示合理的应用程序不应该尝试捕获的严重问题。大多数此类错误都是异常情况。查看一些子类Error,获取他们的一些JavaDoc注释:AnnotationFormatError - 当注释解析器尝试从类文件中读取注释并确定注释格式错误时抛出。AssertionError - 抛出表示断言失败。LinkageError - LinkageError的子类表明一个类对另一个类有一些依赖性; 然而,后一类在前一类的编译后发生了不相同的变化。VirtualMachineError - 抛出此异常表示Java虚拟机已损坏或已耗尽其继续运行所需的资源。实际上有三个重要的子类别Throwable:Error - 出现严重错误的大多数应用程序应该崩溃而不是试图解决问题,未经检查的异常(又名RuntimeException) - 通常是编程错误,例如NullPointerException非法参数。应用程序有时可以处理或从此Throwable类别中恢复- 或者至少使用Thread的run()方法捕获它,记录投诉并继续运行。Checked Exception(又名其他所有内容) - 应用程序应该能够捕获并有意义地对其余部分执行某些操作,例如FileNotFoundException和TimeoutException...

沧海一幻觉

这张幻灯片显示了@ georgios-gousios的Java异常层次结构,简要地解释了Java中的错误和异常之间的区别。

慕村225694

如您所知,错误往往表示您的应用程序已结束。它通常无法从中恢复,并且应该导致VM退出。除了在退出之前可能记录或显示和适当的消息之外,不应该捕获它们。示例:OutOfMemoryError - 您可以执行的操作不多,因为您的程序无法再运行。例外通常是可以恢复的,即使没有,它们通常只是意味着尝试的操作失败,但您的程序仍然可以继续。示例:IllegalArgumentException - 将无效数据传递给方法,以便方法调用失败,但不会影响将来的操作。这些都是简单的例子,仅有例外情况就有另外丰富的信息。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java