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.lang.Throwable类开始。
当抛出异常时,它必须是Throwable类的对象或其任何子类。
catch块的参数必须是Throwable类型,或其子类之一,例如Exception,ArithmeticException,IOException等。
我们可以通过从一个异常类继承我们的类来创建我们自己的异常类。
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 }
有三种类型的异常:
第一类中的异常称为检查异常,因为编译器检查它们是否在代码中处理。
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字符串比较String类覆盖了Object类的equals()方法,并提供了自己的实现,它根据它们的内容比较两个字符串...
JavaFX教程 -JavaFX GridPaneGridPane通常用于布局输入表单第一列上的只读标签和第二列上的输入字段。GridPane可以在行,列或单...
Java 实例 - 集合转数组 Java 实例以下实例演示了如何使用 Java Util 类的 list.add() 和 list.toArray() 方法将集合转为数组:i...