JavaSE异常
java.lang.Throwable; 这是一个父类,不是接口
错误:JVM, 硬件,执行逻辑错误,不能手动处理
异常的分类:1.可检查异常(可预见的异常)必须处理
IO,FileNotFindException;
2.非检查异常(Runtime中的异常)可处理,可不处理,系统会把该异常自动抛出直到JVM。
空指针异常,数组越界,类型转换异常,数学异常,并发修改异常
**非检查情况:( RuntimeException)
数组越界
new ArrayList<Integer>().get(0);
类型转换异常
Sting s="20";
Integer i=(Integer) s;
可检查异常情况:(Exception)
IOException
FileOutputStream fos=new FileOutputStream(new File("c:\\1.txt"));
异常处理
try{
}catch(Exception e){
e.printStackTrace();
}
**catch(IOException|NullPointerExceptino) //并列抓取异常,jdk1.7之后写法
finally的应用
try{
//代码块
}catch(Exception e){
//打印错误信息
}finally{
//必要执行的代码
}
finally与return的先后顺序关系
finally的执行在return之前;
try{
//code
}catch(Exception e){
return 1;
}finally{
System.out.ptintln("1111");
}
发生异常捕获不处理的使用方式,执行后会异常停止后面的指令执行;
try{
//代码
}finally{
//最后执行的代码
}