java异常
异常处理(一般只针对编译期异常)-> 五个关键字
1. try:
一个try块对应一个或者多个catch块
注意:
1)假设当前try块中存在多条可能会发生异常的代码A,B,C 三条语句,如果A发生异常,此时B,C语句不会被执行到。
2)try块尽量避免嵌套
2. catch:
尽量避免过细划分异常
注意:
catch(NullPointerException){
//先关心的用子类处理,不关心的直接用父类处理
}
catch(Exception e){
}
3. finally:
特点是:无论是否发生异常必定会被执行到
面试常见问题:
1)final finally finalize
2)如果try块里面包含 return,并且finally块也包含return;
从finally块return退出
3) 如果try块里面含有退出System.exit();finally也包含;
问:此时从哪里退出
从try块中System.exit退出
4. throw:
throw new EmptyStackException();
扔异常对象
5. throws
void fun()throws InterruptedException{
Thread.sleep(1000);//(单位毫秒)
}
调用处:
try{
fun();//谁调谁处理
}catch(InterruptedException e){
e.printStackTrace();
}
try {
//可能发生异常的代码
arr[1] = 10;//JVM抛出异常对象
} catch (ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
}