当前位置: 首页 > 面试题库 >

Java异常和错误之间的区别

荀学文
2023-03-14
问题内容

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


问题答案:

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

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

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

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

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

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


 类似资料:
  • 本文向大家介绍Java中错误和异常之间的区别,包括了Java中错误和异常之间的区别的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将了解错误和异常之间的区别。 错误 它被分类为未检查类型。 它属于类'java.lang.error'。 无法从中恢复。 它不能在编译时发生。 错误的例子包括- 'OutOfMemoryError' ``IOError'' 例外 它可以分为未检查的异常和已检查的

  • 本文向大家介绍Java中异常和错误之间的区别,包括了Java中异常和错误之间的区别的使用技巧和注意事项,需要的朋友参考一下 异常和错误都是Throwable类的子类。该错误表示主要由于缺少系统资源而导致的问题,我们的应用程序不应捕获这些类型的问题。错误的一些示例是系统崩溃错误和内存不足错误。错误大多发生在运行时,因为它们属于未经检查的类型。  异常是在运行时和编译时可能发生的问题。它主要发生在开发

  • 问题内容: 如何区分Java中的错误和异常? 问题答案: 错误“表示合理的应用程序不应尝试捕获的严重问题”。 而 异常“指示合理的应用程序可能想要捕获的条件”。 错误及其子类都是例外。所有其他异常类都是异常。 检查 异常通常是程序可以从中恢复的异常,最好以编程方式从此类异常中恢复。示例包括,等。希望程序员使用try- catch块检查这些异常,或者将其扔回调用方。 另一方面,我们有 未经检查的 异

  • 问题内容: 我们知道如果发生任何错误或任何未经检查的异常,那么我们的程序将暂停,那么两者之间有什么区别? 问题答案: 从错误 Javadoc: 错误是Throwable的子类,它指示合理的应用程序不应尝试捕获的严重问题。大多数此类错误是异常情况。ThreadDeath错误虽然是“正常”情况,但它也是Error的子类,因为大多数应用程序都不应尝试捕获它。 与异常 Javadoc的比较 Excepti

  • 问题内容: 在Java中,如果特定的代码行导致程序崩溃,则将捕获异常并继续执行程序。 但是,在C ++中,如果我有一段导致程序崩溃的代码,例如: 然后程序仍然崩溃,并且没有捕获到异常。 那么C ++中异常处理的意义是什么?我误会了吗? 问题答案: 崩溃的行正在取消引用无效的指针。在C ++中,这不会引发异常。相反,它是未定义的行为。 C ++中不存在空指针异常,这与Java会抛出空指针异常不同。相

  • 本文向大家介绍Java中检查和未检查异常之间的区别,包括了Java中检查和未检查异常之间的区别的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将了解Java中已检查和未检查的异常之间的区别。 检查异常 它们在编译时发生。 编译器检查已检查的异常。 这些异常可以在编译时进行处理。 它是异常类的子类。 JVM要求捕获并处理异常。 已检查异常的示例-“找不到文件异常” 未检查的异常 这些异常在运