异常

一、分为一般异常和运行时异常;

 1、 异常处理格式:

  try{

  }catch(异常对象 变量){

    }

  当时异常不做处理,后面的程序就不会执行;

  多异常处理格式:

  try{

  }catch(异常对象 变量){

  }catch(异常对象 变量){

  }catch(异常对象 变量){

  }

  多异常处理总结:

  • 是进行顺序执行,从上到下。
  • 如果多个catch 内的异常有子父类关系:
  • 子类异常在上,父类在最下,编译通过运行没有问题
  • 父类异常在上,子类在下,编译不通过。(因为父类可以将子类的异常处理,子类的catch处理不到)。【多个异常要按照子类和父类顺序进行catch】
  •  printStackTrace() 打印栈信息(打印异常信息)

 2、throw和throws

throwthrows的区别

a.   相同:都是用于做异常的抛出处理的。

不同点:

a.   使用的位置: throws 使用在函数上,throw使用在函数内

b.   后面接受的内容的个数不同:

c.   throws 后跟的是异常类,可以跟多个,用逗号隔开。

d.   throw 后跟异常对象

 

3、finally:无论如何都会执行

  格式:try{}catch(){}finally{};

  

4、final、finally、finalize

Final 静态变量的修饰;

Finally 一般是和try catch 联合使用;

Finalize 在垃圾回收器回收垃圾之前,会先finalize方法;

 

5、自定义异常步骤:

  

1)   写一个异常类继承Exception

2)   写一空有的构造方法

3)   写一个有参数的构造方法。

如:

package Monday0925;

public class CustomException extends Exception {
    
    
    public CustomException(){
        
    }
    public CustomException(String a){
        System.out.println(a);
    }
    
}

-----------------------------------------------------------------

package Monday0925;

public class CustomDemo {

    public double balance;
    
    public double getBalance() {
        return balance;
    }
    public void setBalance(double balance) {
        this.balance = balance;
    }
    //自定义一个异常,当余额小于50的时候就提示余额不足;
    public double ba(double balance)throws CustomException{
        if(balance<50d){
            throw new CustomException("余额不足50,请及时充值");
        }
        return balance;
    }
    public static void main(String[] args) {
        CustomDemo cd=new CustomDemo();
        try {
            cd.ba(60d);
        } catch (CustomException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

 

posted @ 2017-09-25 16:21  wanghusuoyi  阅读(158)  评论(0编辑  收藏  举报