java_异常

来源:互联网 发布:云计算有哪些内容 编辑:程序博客网 时间:2024/05/21 03:55


异常的一些方法


//finalize:GC会调用该对象的finalize方法释放该对象。


当调用一个含有throws声明异常抛出的方法时,编译器要求
必须有处理该异常的方式。两种方式:
1.使用try-catch捕获并处理异常
2.在当前方法上继续使用throws将该异常抛出。
try{
 可能出错的语句;
}catch(Exception e){
    异常处理语句;
   e.printStack(); //输出错误堆栈信息
   e.getMessage();//获取错误信息
}finally{
     不管是否捕捉到异常,都会执行的语句;
}

catch可以定义多个,针对try代码块中可能出现的异常,有不同的
处理方式时,需要单独捕获这些异常并编写解决问题的代码。
应该养成一个习惯,就是在最后捕获Exception,这样就会避免因
抛出一个未捕获的异常导致程序可能出现中断的情况。
当捕获的异常之间存在继承关系时,需要将子类异常定义在上面先捕获
,后定义父类异常。

finally块:只能定义在异常捕获机制的最后,即:
try之后或者最后一个catch之后。通常会将无关乎异常的代码
放入finally块中确保执行。比如,操作流中的关闭流。   

自定义异常,通常是用来在项目中定义业务逻辑级别的错误.
通常一个方法使用throw抛出一个异常时,就需要在当前方法上使用
throws定义该异常的抛出以通知调用者。只有RuntimeException
机器子类异常抛出时可以不定义,否则必须定义。
class MyException extends Exception{
}

public class A{ 

   

   public void dosome() throws MyException{
         throw new MyEcception();   
}

子类重写父类含有throws声明异常抛出的方法时的规则
class B extends A{
 //允许不再抛出异常
 //允许仅抛出部分异常
 //允许抛出父类抛出异常的子类型异常
 //不可以抛出额外异常
 //不可以抛出父类方法抛出异常的父类型异常      
    public void dome(){
};    
}

































































原创粉丝点击