Java中异常

Java中异常

基本概念

在Java语言中,将程序执行中发生的不正常情况称为“异常”。

  • 执行过程中所发生的异常事件可分为两类

1.错误:Java虚拟机无法解决的严重问题,比如jvm系统内部错误,资源耗尽等情况。

2.异常:其他因编程错误或者偶然外在因素导致的一般性问题,可以使用针对性的代码进行处理。比如空指针的访问,访问不存在的文件等等。异常也可以分为两个大类:运行时的异常和编译时的异常。

异常体系图

对于不同的jdk版本异常体系图显示的会有所不同,但是Throwable是Error与Exception的父类。而我们所说的编译异常与运行异常,编译异常是在生成class文件时发现的,而运行异常则是在class文件运行时发生的。

image-20220704160152014

常见五个运行时的异常

  • NullPointException空指针异常,当程序试图在需要对象使用null时,抛出该异常。
1
2
3
4
5
6
7
8
9
package Learn;
public class Test {
public static void main(String[] args) {
String name =null;
System.out.println(name.length());

}
}

image-20220704160212340

AritmeticException数字运行异常

1
2
3
4
5
6
7
package Learn;
public class Test {
public static void main(String[] args) {
int a=10/0;
System.out.println(a);
}
}

image-20220704160240284

  • ArrayIndexOutOfBoundsException数组下标越界异常
1
2
3
4
5
6
7
package Learn;
public class Test {
public static void main(String[] args) {
int []a={1,2,3};
System.out.println(a[4]);
}
}

image-20220704160341244

  • ClassCastException类型转换异常
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package Learn;
public class Test {
public static void main(String[] args) {
A b=new B();
C c=(C) b;
}
}
class A{

}
class B extends A{

}
class C extends A{

}

image-20220704160405671 NumberFormatException数字格式不正确

1
2
3
4
5
6
7
package Learn;
public class Test {
public static void main(String[] args) {
String name="鲁迅";
int num=Integer.parseInt(name);
}
}

image-20220704160416946常见的编译异常

  • SQLException 操作数据库发生的异常
  • IOException 操作文件时发生的异常
  • FileNotFoundException 操作不存在文件时,发生的异常
  • ClassNotFoundException 加载类不存在时,发生异常