📜  Java异常(1)

📅  最后修改于: 2023-12-03 15:16:35.519000             🧑  作者: Mango

Java异常

在Java编程中,异常是一种异常情况,它可能会导致程序中断或崩溃。Java异常可以分为两种类型:检查异常和运行时异常。

检查异常

检查异常是Java编译器要求程序员在代码中显式地处理的异常。这些异常通常是外部错误或无法预测的错误,例如打开一个不存在的文件或访问一个无效的URL。

下面是一个处理检查异常的示例:

try {
    FileInputStream file = new FileInputStream("file.txt");
} catch (FileNotFoundException e) {
    System.out.println("File not found.");
    e.printStackTrace();
}

在这个例子中,我们尝试打开一个文件,如果文件不存在,则会抛出FileNotFoundException。我们通过一个try-catch块来处理这个异常。如果我们没有处理这个异常,程序将无法编译。

运行时异常

运行时异常是在运行时发生的异常,它不需要程序员显式地处理。这些异常通常是由编程错误引起的,例如数组越界或空指针引用。

下面是一个运行时异常的示例:

int[] arr = {1, 2, 3};
System.out.println(arr[3]);

在这个例子中,我们尝试访问数组的第四个元素,但数组只有三个元素。这将导致ArrayIndexOutOfBoundsException异常。

异常处理

在Java中,我们可以使用try-catch块来处理异常。在try块中,我们尝试执行可能会抛出异常的代码。如果异常发生,则跳转到catch块来处理异常。在catch块中,我们可以打印错误消息或执行其他操作。

下面是一个异常处理的示例:

try {
    int[] arr = null;
    System.out.println(arr.length);
} catch (NullPointerException e) {
    System.out.println("NullPointerException: " + e.getMessage());
} catch (Exception e) {
    System.out.println("Exception: " + e.getMessage());
}

在这个例子中,我们尝试访问一个空引用的长度。这将导致NullPointerException异常。我们使用一个catch块来捕获这个异常并打印错误消息。我们还使用另一个catch块来捕获任何其他异常,并打印它们的错误消息。