Java中错误和异常之间的区别

作者: Laura McKinney
创建日期: 2 四月 2021
更新日期: 6 可能 2024
Anonim
Best practices to handle exceptions in java (2018)
视频: Best practices to handle exceptions in java (2018)

内容


“ Throwable”充当Java错误和异常层次结构的根源。 “错误”是程序代码无法处理的关键条件。 “异常”是程序代码可以处理的特殊情况。错误和异常之间的显着区别是 错误 是由于系统资源不足引起的,并且 例外 是由于您的代码引起的。让我们研究错误和异常之间的其他差异以及比较表。

  1. 比较表
  2. 定义
  3. 关键差异
  4. 结论

比较表

比较基础错误例外
基本的由于缺少系统资源而导致错误。由于代码而导致异常。
复苏错误是无法恢复的。异常是可恢复的。
关键词程序代码无法处理错误。使用三个关键字“ try”,“ catch”和“ throw”处理异常。
后果
检测到错误后,程序将异常终止。作为检测到的异常,它分别由“ throw”和“ catch”关键字引发并捕获。
种类 错误分类为未检查类型。异常分为已检查或未检查类型。
在Java中,错误定义为“ java.lang.Error”包。在Java中,“ java.lang.Exception”中定义了一个异常。
内存不足,StackOverFlow。已检查的异常:NoSuchMethod,ClassNotFound。
未经检查的异常:NullPointer,IndexOutOfBounds。


错误的定义

错误”是内置类“ Throwable”的子类。错误是由于缺少系统资源而发生的关键条件,程序代码无法处理错误。错误无法以任何方式恢复,因为它们无法被创建,抛出,捕获或回复。错误是由于灾难性故障引起的,通常您的程序无法处理。

错误始终是未经检查的类型,因为编译器对错误的发生一无所知。错误始终在运行时环境中发生。可以通过一个示例来解释该错误,该程序有堆栈溢出错误,内存不足错误或系统崩溃错误,这种错误是系统引起的。该代码不对此类错误负责。错误发生的结果是程序异常终止。

例外的定义

“ Exception”还是内置类“ Throwable”的子类。例外是在运行时环境中发生的特殊情况。在大多数情况下,异常是由程序的代码引起的。但是,异常可以由程序本身处理,因为异常是可恢复的。使用三个关键字“ try”,“ catch”,“ throw”处理异常。编写异常的语法是:

尝试{//在此处编写代码}捕获(异常类型){//在此处编写代码}

在上面的代码中,try块中编写的代码是您要监视的异常代码。如果异常发生在try块中,则使用“ throw”关键字抛出该异常。抛出的异常可以由上述代码的“ catch”块捕获。 “异常类型”是已发生的异常的类型。

可以简单地说,由于代码不正确而发生的错误称为异常。例如,如果找不到请求的类,或者找不到请求的方法。这些异常是由于程序中的代码引起的。系统不对此类异常负责。异常分为“已检查”和“未检查”。未检查的异常不是编译器所知的,因为它们在运行时会发生,但是,编译器具有关于检查的异常的知识,因为它们在编译期间是已知的。

  1. 仅当系统资源不足时才会发生错误,而如果代码有问题则会导致异常。
  2. 错误永远无法恢复,而可以通过准备处理异常的代码来恢复异常。
  3. 错误永远不会被处理,但是,如果将引发异常的代码编写在try and catch块中,则该代码可以处理异常。
  4. 如果发生错误,程序将异常终止。另一方面,如果发生异常,则程序将引发异常,并使用try and catch块对其进行处理。
  5. 错误属于未经检查的类型,即编译器不了解错误,而将异常分为检查和未检查两种。
  6. 错误在java.lang.Error包中定义,而异常定义在java.lang.Exception中。

结论:

异常是程序编码中错误的结果,而错误是系统功能不正常的结果