Java异常 Exception类及其子类(实例讲解)
在Java中,异常是指在程序运行过程中发生的不正常情况,需要由程序对其进行处理以保障程序正常运行。Java异常类型分为Error和Exception,其中Error是指不可恢复的错误,如内存不足等;Exception则是可被捕获和处理的异常。
在Exception类中,又存在多个子类,每个子类可以处理不同类型的异常。常见的Exception子类包括:
- NullPointerException(空指针异常):在使用null对象时,会抛出该异常;
- IndexOutOfBoundsException(下标越界异常):当使用了错误的数组下标或者集合下标时,会抛出该异常;
- ClassNotFoundException(类未找到异常):当加载指定类时找不到对应的类文件时,会抛出该异常;
- IOException(输入输出异常):在进行读写操作时,发生错误时会抛出该异常;
- SQLException(数据库操作异常):在进行数据库操作时,发生错误时会抛出该异常。
在处理Exception类的子类异常时,一般会采用try-catch语句来进行捕获和处理。try块用于定义可能会抛出异常的代码,catch块用于捕获和处理异常。
下面,我们来看两个例子说明Java中异常的处理:
示例1:空指针异常
在Java中,当我们使用了null值的对象时,会抛出空指针异常。下面的代码就可能会引发这种异常:
String str; // 定义一个字符串变量
str.toString(); // 调用toString方法
在上面的代码中,我们定义了一个字符串变量,但是并没有初始化。在调用toString方法时,Java会抛出空指针异常。
为了避免空指针异常,我们可以在调用toString方法前,先进行非空判断。修改后的代码如下:
String str; // 定义一个字符串变量
if (str != null) {
str.toString(); // 调用toString方法
}
这时,如果str为null,就不会执行toString方法,也就不会抛出空指针异常了。
示例2:文件读取异常
在进行文件读取时,如果文件不存在或读取失败,就会抛出IOException异常。下面的代码读取一个不存在的文件,就会引发该异常:
try {
BufferedReader reader = new BufferedReader(new FileReader("test.txt"));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line); // 输出文件内容
}
reader.close(); // 关闭文件流
} catch (IOException e) {
System.out.println("文件读取出错:" + e.getMessage()); // 输出异常信息
}
在上面的代码中,我们使用了try-catch语句来捕获和处理IOException异常。try块中定义了文件读取的代码,如果读取成功,则输出文件内容;否则就会抛出IOException异常,进入catch块进行处理。
在catch块中,我们通过e.getMessage()获取异常信息,并输出到控制台上。
通过上述两个例子,我们可以看出,在Java中使用try-catch语句来处理异常是非常重要的。在编写代码时,应该尽可能地防范和处理异常,以提高程序的稳定性和健壮性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java异常 Exception类及其子类(实例讲解) - Python技术站