xoxobool

成功者,永远成功,失败者,永远失败,我要面对者,走向成功!

导航

java基础异常捕获处理

1.建立exception包,编写TestException.java程序,主方法中有以下代码,确定其中可能出现的异常,进行捕获处理。

for(inti=0;i<4;i++){

int  k;

switch(i){

case 0:

int zero=0;

k=911/zero;

break;

case1:

int  b[]=null;

k = b[0];

break;

case2:

int c[]=new int[2];

 

k=c[9];

break;

case3:

char  ch="abc".charAt(99);

 

break;

}

}

public class TestException {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        for(int i=0;i<4;i++){
            int  k;
            
                switch(i){
                case 0:
                int zero=0;
                try{
                k=911/zero;}
                catch(Exception e)
                {
                    System.out.println("捕获了异常"+e.getMessage());
                }
                break;
        
                case 1:
        int  b[]=null;
    try{    
            k = b[0];
        }
    catch(Exception e)
    {
        System.out.println("捕获了异常"+e.getStackTrace());
    }
    
        break;
                case 2:
        int c[]=new int[2];

        try{
            k=c[9];
            
        }
        catch(Exception e)
        {
            System.out.println("捕获了异常,我还能运行!");
        }
        break;
                case 3:
                    try{
                            char ch="abc".charAt(99);
                        }
                    catch(Exception e)
                    {
                        System.out.println("终于抓完了,我快要到休息的时间啦");
                    }
        break;
            }
        }
        
    }

}

2.建立exception包,建立Bank类,类中有变量double  balance表示存款,Bank类的构造方法能增加存款,Bank类中有取款的方法withDrawal(double dAmount),当取款的数额大于存款时,抛出InsufficientFundsException,取款数额为负数,抛出NagativeFundsException,如new Bank(100),表示存入银行100元,当用方法withdrawal(150),withdrawal(-15)时会抛出自定义异常。

//自定义异常类
public class InsufficientFundsException extends Exception {
    InsufficientFundsException(String a)
    {
        
    }
//重写信息异常的方法
@Override
    public String getMessage() {
        // TODO 自动生成的方法存根
        return "取款余额不足";
    }
}
// 自定义异常类
public class NagativeFundsException extends Exception {
    NagativeFundsException(String n)
    {
        
    }
  
    @Override
    public String getMessage() {
        // TODO 自动生成的方法存根
        return  "存款余额为负数啦";
    }
}
public class Bank {
    private double balance;

    public double getBalance() {
        return balance;
    }

    public void setBalance(double balance) {
        this.balance = balance;
    }
    public Bank(double money)
    {
        balance+=money;
        
    }
    //声明抛出的异常
    public void withDrawal(double dAmount) throws 
InsufficientFundsException,NagativeFundsException
    {
        if(dAmount > balance)
        {    //抛出自定义异常
            throw new InsufficientFundsException("取款余额不足");
        }
                //抛出自定义异常
        else if(dAmount <0)
        {
            throw new NagativeFundsException("取款余额为负数啦");
        }
    
    }
}    
    public static void main(String[] args) throws InsufficientFundsException, NagativeFundsException {
        // TODO 自动生成的方法存根
            Bank b = new Bank(100.0);
            b.withDrawal(150);
            b.withDrawal(-15);
    }

}

 

posted on 2016-09-24 07:08  春之林木  阅读(299)  评论(0编辑  收藏  举报