下面是本文的完整攻略:
Java异常和错误类总结(必看篇)
什么是异常和错误?
Java程序的运行过程中,可能会出现各种各样的不正常情况,比如输入错误、内存不足、文件不存在等等。这些不正常情况统称为“异常”(Exception)和“错误”(Error)。
异常和错误都是Java的类,都继承自Throwable类。它们之间的区别在于,异常通常是程序运行过程中的逻辑错误,而错误则是指程序无法恢复的系统错误。
Java中常见的异常类
Java中有许多不同的异常类,我们必须了解它们的作用和用法,以便在我们编写代码时遇到异常时正确地处理它们。这里列举几个常见的异常类。
NullPointerException (空指针异常)
当我们尝试访问空对象/空数组的成员或调用null对象的方法时,就会出现空指针异常。
示例代码:
String str = null;
System.out.println(str.length()); // 抛出NullPointerException
ArrayIndexOutOfBoundsException (数组下标越界异常)
当我们尝试访问数组的不存在的部分时,就会出现数组下标越界异常。
示例代码:
int[] arr = new int[3];
System.out.println(arr[3]); // 抛出ArrayIndexOutOfBoundsException
ArithmeticException (算术异常)
当出现非法的算术运算时,就会出现算术异常。
示例代码:
int a = 10 / 0; // 抛出ArithmeticException
ClassCastException (类型转换异常)
当我们试图将一个对象强制转换为不是它的子类的类型时,就会出现类型转换异常。
示例代码:
Object obj = new Object();
String str = (String) obj; // 抛出ClassCastException
FileNotFoundException (文件不存在异常)
当尝试访问一个不存在的文件时,就会出现文件不存在异常。
示例代码:
File file = new File("path/to/nonexistent/file");
FileReader fr = new FileReader(file); // 抛出FileNotFoundException
Java中常见的错误类
与异常类相比,Java中的错误类通常是无法恢复的,因此我们通常只能抛出这些错误并在程序中退出。
OutOfMemoryError (内存不足错误)
当Java虚拟机内存耗尽时,就会出现内存不足错误。
示例代码:
List<byte[]> list = new ArrayList<>();
while (true) {
list.add(new byte[1024 * 1024]);
}
StackOverflowError (栈溢出错误)
当方法调用的层数过多时,就会出现栈溢出错误。
示例代码:
public static void main(String[] args) {
main(args); // 抛出StackOverflowError
}
如何捕捉和处理异常
Java中使用try-catch语句来捕捉和处理异常。如果try块中的代码抛出异常,则会跳到与之匹配的catch块中,并执行其中的代码。
示例代码:
try {
String str = null;
System.out.println(str.length());
} catch (NullPointerException e) {
System.out.println("发生了空指针异常:" + e.getMessage());
}
在上面的代码中,由于访问了null值的方法,抛出了空指针异常。程序会跳转到与之匹配的catch块,并执行其中的代码(在这个例子里面就是输出一条异常信息)。
希望对你有所帮助,如果还有问题请随时提问!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java异常和错误类总结(必看篇) - Python技术站