1、什么事异常:
就是程序发生了不正常的事情
异常体系:所有的有异常的名字,原因,以及发生的位置。
2、异常有哪些
下标越界异常,空指针异常,算术异常,类转换异常,数字格式化异常
应行使异常:
编译时通过在程序运行时发生的异常
1、下标越界异常:访问数组中不存在的下标
2、空指针异常:对象不存在,调用了方法
3、算数异常:违反了算数的规则,0不能作为除数的
4、类型转换异常:向下之前没有向上(多态)
5、数字格式化异常
编译时异常:
在编写代码过程中已经提升需要解决的异常
Throwable(父类):所有异常的父类。
error(错误):不可治愈的绝症,程序员无法解决Jvm内存溢出
Exception(异常):可治愈的,往往因为代码 逻辑不正确导致需要程序员修改代码
3、如何处理异常:
try{
可能发生异常的代码
}catch(Exception e){
处理异常的方式
}finally{
表示不论是否有异常,都执行finally语句段
}
注意:
1、可以有多个catch。
2、多个catch,父类放在最后负责收尾。
3、finally代码块:总是在最后执行,不管有没有发生,经常用来释放资源
优点:可以让捕获代码块外面的代码继续执行。
缺点:降低了阅读性。
4、final,finally,finalize的区别
Final声明类,不可被继承,声明方法,不可以被重写声明变量,为常量,必须赋值
Finally try catch finally中的表示不论是否有异常,都执行finally语句段
Finalize表示垃圾回收机制中自动被调用的地方
5、异常关键字:
下标越界异常:ArrayIndexOutOfBoundsException
空指针异常:java.lang.NullPointerException
算术异常:java.lang.ArithmeticException
类转换异常:java.langClassCasException
数字格式化异常:java.langNumberFormatException
6、抛出异常:
throw:在方法中使用针对的是异常对象。
throws:在方法中声明时使用,针对的是异常类
(如果抛出的异常是编译时异常.throws和throw需要一起结合使用)
7、throw和throw的区别
throw:方法中使用,跑出一个具体的异常,即抛出一个异常对象
throws:方法声明时使用,表示该方法可能抛出的异常,如果抛出多个异常用逗号隔开,谁调用谁处理