📜  Java中的内置异常及示例(1)

📅  最后修改于: 2023-12-03 14:42:55.955000             🧑  作者: Mango

Java中的内置异常及示例

Java是一种强类型语言,程序在编译时需要遵循严格的规则。当程序在执行时,如果违背了这些规则,就会抛出异常,中断程序的正常执行流程。Java中提供了许多内置异常类,程序员可以使用这些内置异常类来优化代码,更好地处理异常情况。本文将简要介绍Java中的内置异常及示例。

内置异常类

Java语言共提供了70多个内置异常类,这里只介绍其中一些常用的异常类。

RuntimeException

RuntimeException是一个运行时异常,它是所有非检查型异常的父类,通常发生在程序运行时,例如数组越界、空指针引用等。通常情况下,RuntimeException是由程序员编写的程序错误所致。

IOException

IOException是一个受检查的异常,它表示发生了输入/输出错误。读取文件、网络通信、Socket编程等都可能抛出该异常,通常难以预测,因此需要进行异常处理。

ClassNotFoundException

ClassNotFoundException也是一个受检查的异常,它表示无法找到指定的类。在动态加载类时,如果找不到对应的类,就会抛出ClassNotFoundException异常。

InterruptedException

InterruptedException是一个受检查的异常,它表示线程被中断。通常情况下,线程在等待资源或响应中断时会抛出该异常。

NullPointerException

NullPointerException是一个RuntimeException,它表示访问了一个不存在的对象或空的引用。当我们试图对一个空引用调用方法或访问属性时,就会抛出该异常。

FileNotFoundException

FileNotFoundException也是一个受检查的异常,它表示无法找到指定的文件。通常在读取文件时,如果文件不存在或者路径错误,就会抛出该异常。

内置异常示例

下面是几个内置异常的示例,可以更好地帮助程序员理解这些异常类的作用。

RuntimeException示例
int[] arr = new int[5];
for (int i = 0; i <= arr.length; i++) {
    arr[i] = i;
}

上述代码在遍历数组时,i的值超过了数组的大小,将抛出ArrayIndexOutOfBoundsException异常,从而使程序终止执行。

IOException示例
File file = new File("test.txt");
try {
    FileInputStream fis = new FileInputStream(file);
    int b;
    while ((b = fis.read()) != -1) {
        System.out.print((char) b);
    }
} catch (IOException e) {
    e.printStackTrace();
}

上述代码读取了一个文件,如果文件不存在或者路径错误,就会抛出FileNotFoundException异常。在代码中捕获了该异常,并输出了异常信息。

ClassNotFoundException示例
try {
    Class clazz = Class.forName("com.example.Test");
} catch (ClassNotFoundException e) {
    e.printStackTrace();
}

上述代码通过字符串动态加载了一个类,如果指定的类不存在,则会抛出ClassNotFoundException异常。在代码中捕获了该异常,并输出了异常信息。

InterruptedException示例
Thread thread = new Thread(() -> {
    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
});
thread.start();
thread.interrupt();

上述代码启动了一个新线程,使其睡眠1秒钟。在主线程中中断该线程,从而抛出InterruptedException异常。

NullPointerException示例
List<String> list = null;
System.out.println(list.size());

上述代码创建了一个空引用,试图调用该引用的size()方法,就会抛出NullPointerException异常。

FileNotFoundException示例
String filePath = "C:/test.txt";
try {
    FileInputStream fis = new FileInputStream(filePath);
    int b;
    while ((b = fis.read()) != -1) {
        System.out.print((char) b);
    }
} catch (FileNotFoundException e) {
    e.printStackTrace();
} catch (IOException e) {
    e.printStackTrace();
}

上述代码读取了一个文件,如果文件不存在或者路径错误,就会抛出FileNotFoundException异常。在代码中捕获了该异常,并输出了异常信息。同时,也需要捕获IOException异常,以便处理其他可能发生的输入/输出错误。