异常处理机制的简单介绍
异常的处理:
异常机制的本质就是:当程序出现问题时,能使程序安全的退出。
1.抛出异常:
在执⾏⼀个⽅法时,如果发⽣异常,则这个⽅法⽣成代表该异常的⼀个对象,停⽌当前的执⾏路径,并把异常对象提交给JRE
2.捕获异常
JRE得到该异常后,寻相应的代码来处理该异常,JRE在⽅法的调⽤栈中查,从⽣成异常的⽅法开始回溯,直到到相应的异常处理代码为⽌。
异常的分类:
Throwable是所有异常的根类,位于java.lang.Throwable
Error (错误,是由虚拟机内部出现的问题,不是代码块的问题)
Exception(异常)
RunTimeException(运⾏时异常):
CheckedException(已检查异常):
RunTimeException(运⾏时异常):⼀般是逻辑的错误引起的异常
nullPointException:当⼀个对象是空的时候,如果去调⽤该对象的属性和⽅法。
解决:判断是否为空,才能调⽤相应的属性和⽅法。
classCastException(强制转型):
ArrayIndexOutBoundsException(数组越界异常):
NumberFormatException(数字格式化异常):
解决:可以利⽤正则表达式。
CheckedException(已检查异常):编译器会报错。
⼀般抛出或者⽤try/catch捕获:
try/catch:
throws:
public class TestException {
public static void main(String[] args){
// TODO Auto-generated method stub
FileReader reader=null;
try{
reader=new FileReader("D:/");
char c1=(ad();
System.out.println(c1);
try catch的使用方法}catch(FileNotFoundException e){//FileNotFoundException是IOException的⼦类,//catch可以有多个
// TODO Auto-generated catch block
e.printStackTrace();
}catch(IOException e){//⼦类异常放在⽗类异常的前⾯
// TODO Auto-generated catch block
e.printStackTrace();
}finally{//只能有⼀个
try{
if(reader!=null)
reader.close();
}catch(IOException e){
/
/ TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
可以利⽤throws直接抛给调⽤者,或者层层外抛,最后抛给JRE
public class TestException {
public static void main(String[] args)throws IOException {
//可以直接抛出,抛给调⽤者
// TODO Auto-generated method stub
FileReader reader=null;
reader=new FileReader("D:/");
char c1=(ad();
System.out.println(c1);
if(reader!=null)
reader.close();
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。