举报投诉联系我们 手机版 热门标签 编程学
您的位置:编程学 > java异常类型分为哪几种 Java 异常类

java异常类型分为哪几种 Java 异常类

2023-03-29 01:18 Java教程

java异常类型分为哪几种 Java 异常类

java异常类型分为哪几种

Java异常类型分为两大类:受检异常和非受检异常。

受检异常是Java中的一种特殊类型,它们必须在方法声明中显式地声明,否则将无法编译。受检异常是由Java虚拟机或应用程序抛出的特定类型的异常,它们必须在方法声明中显式地声明,否则将无法编译。受检异常包括IOException、SQLException、ClassNotFoundException、InterruptedException、NoSuchMethodException、IllegalAccessException、InstantiationException、NoSuchFieldException和NumberFormatException。

非受检异常是一种不需要在方法声明中进行处理的特定类型的异常。它们不会对代码的正常执行产生影响,但是如果不处理它们,就会对应用程序造成负面影响。非受检异常包括RuntimeException、NullPointerException、ArrayIndexOutOfBoundsException、ArithmeticException和IllegalArgumentException。

try { 
    // 可能出现问题的代码 
} catch (IOException e) { 
    // 处理 IO 异常 
} catch (SQLException e) { 
    // 处理 SQL 异常 
} catch (RuntimeException e) { 
    // 处理运行时异常 
} catch (Throwable t) { 
    // 处理其他所有情况 
}

Java 异常类

Java面向对象设计 - Java异常类

异常类层次结构

异常类层次结构从java.lang.Throwable类开始。

当抛出异常时,它必须是Throwable类的对象或其任何子类。

catch块的参数必须是Throwable类型,或其子类之一,例如Exception,ArithmeticException,IOException等。

我们可以通过从一个异常类继承我们的类来创建我们自己的异常类。

使用多个catch块

Java运行时选择适当的catch块,并从第一个catch块开始顺序寻找合适的catch时钟。

try块的多个catch块必须从最具体的异常类型排列为最通用的异常类型。

以下代码使用多个catch块的有效序列。

ArithmeticException类是RuntimeException类的子类。

如果这两个异常都在同一个try块的catch块中处理,那么最具体的类型,即ArithmeticException,必须出现在最通用的类​​型之前,即RuntimeException。

try  {
// Do  something, which  might  throw  Exception
}
catch(ArithmeticException e1)  {
// Handle  ArithmeticException first
}
catch(RuntimeException e2)  {
// Handle  RuntimeException after  ArithmeticException
}

已检查和未检查异常

有三种类型的异常:

  • 有一些例外,有更高的可能发生。我们可以在try-catch块中处理它们。或者我们可以在调用方法/构造函数声明中指定它可能抛出异常。
  • 错误是可能发生的异常,并且我们几乎不能处理它。例如,java.lang.OutOfMemeoryError。我们不能做任何事情从内存不足错误中恢复。
    异常类层次结构中的类,它们是Error类的子类和Error类本身,属于此类别的异常。
    编译器不坚持对我们的代码采取行动。如果在运行时抛出此类异常,运行时将通过显示详细的错误消息并暂停应用程序来处理它。
  • 在运行时可能会发生异常,我们可能会从异常条件中恢复。
    异常类层次结构中的类,它们是RuntimeException类的子类和RuntimeException类本身,属于此类别。
    编译器不坚持对我们的代码采取行动。

第一类中的异常称为检查异常,因为编译器检查它们是否在代码中处理。

Throwable类,Exception类和Exception类的子类(不包括RuntimeException类及其子类)称为检查异常。

所有未检查异常的异常称为未检查异常,因为编译器不检查它们是否在代码中处理。

Error类,Error类的所有子类,RuntimeException类及其所有子类都是未检查的异常。

我们可以处理未检查的异常,如果我们想,编译器不会强迫我们这样做。

用于处理已检查或未检查异常的程序结构是相同的。

以下代码显示如何处理已检查的异常:

import java.io.IOException;

public class Main {
  public static void main(String[] argv) {
    try {
      int input = System.in.read();
      if (input != -1) {
        System.out.println(input);
      }
    } catch (IOException e) {
      System.out.print("IOException occurred.");
    }
  }
}


阅读全文
以上是编程学为你收集整理的java异常类型分为哪几种 Java 异常类全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 编程学 bianchengxue.com 版权所有 联系我们
桂ICP备19012293号-7 返回底部