目录
1.异常的概述
异常是什么?异常是程序在“编译”和“运行”的过程中可能出现的问题,异常是应该尽可能去提前避免的,异常可能也是无法做到绝对避免的,异常的情况太多了,开发中只能提前干预。
异常一旦出现了,如果没有提前处理异常,程序可能退出JVM虚拟机而终止,开发中是需要提前处理的。
处理异常可以提高程序员的健壮性和安全性。
2.异常的体系
ERROR:错误的意思,严重错误ERROR,无法通过处理的错误,一旦出现,程序员无能为力了,只能重启系统,优化项目。
比如:内存崩溃,JVM本身崩溃,这个程序员无需理会。
Exception:才是异常类,它才是开发中代码在编译或者执行过程中可能出现的错误,它是需要提前进行处理的,以便程序更加健壮。
3.Exception异常的分类
1.编译时异常:继承来自Exception的异常和子类,编译阶段就会报错。
必须程序员处理的,否则代码编译就不能通过!!!
2.运行时异常:继承来自RuntimeException的异类和子类,编译阶段是不会出错的,它是在运行阶段有可能出现,运行时异常可以处理也可以不处理,编译时候发生,还是建议处理。
异常一旦出现,程序会终止,所以要研究异常,避免异常,处理异常,程序更加健壮,
例如:ArrayIndexOutofBoundsException运行时异常:
public static void main(String[] args) {
System.out.println("程序开始..");
int[] arr={1,12,3};
System.out.println(arr[3]);
//运行时异常
//Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 3 out of bounds for length 3
System.out.println("程序结束");
}
4.常见的运行时异常
这是一个普通的面试题,常见的运行时异常有:
1.数组越界异常:ArrayIndexOutofBoundsException。
2.空指针异常:NullPointerException
3.类型转换异常:ClassCastException
4.迭代器遍历没有此元素异常:NoSuchElementException
5.数学操作异常:ArithemeticException.
6.数字转换异常:NumberFormatException.
System.out.println("程序开始...");
int[] arrs = {10,20};
// System.out.println(arrs[3]);
/*Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3*/
/*直接结束*/