异常处理(9.23)——————————课后练习

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

    public static void main(String[] args) 
    {
        try 
        {
            for(int i=0;i<4;i++)
            {
                int  k;
                switch(i)
                {
                case 0:
                    int zero=0;
                    k=911/zero;
                    break;
                case 1:
                    int  b[]=null;
                    k = b[0];
                    break;
                case 2:
                    int c[]=new int[2];
                    k=c[9];
                    break;
                case 3:
                    char  ch="abc".charAt(99);
                    break;
                }
            }
        }
        catch(ArithmeticException e)
        {
            System.out.println(e.getMessage()+"\t被除数不能为零");
        }
        catch(NullPointerException e)
        {
            System.out.println(e.getMessage()+"\t空指针");
        }
        catch(ArrayIndexOutOfBoundsException e)
        {
            System.out.println(e.getMessage()+"\t非法索引");
        }
        catch(StringIndexOutOfBoundsException e)
        {
            System.out.println(e.getMessage()+"\t字符串索引越界");
        }
    }

}

 

package exception;

import javax.naming.InsufficientResourcesException;


public class CeshiBank 
{

    public static void main(String[] args) throws InsufficientResourcesException 
    {
        Bank a = new Bank(100) ;
        a.withDrawal(150);
        a.withDrawal(-15);
    }

}

class Bank
{
        //成员属性
        private double balance ;    
        
        //无参构造方法
        public Bank()
        {
            
        }
        //有参构造方法
        public Bank(double balance)
        {
            this.balance = balance ;
        }
        
        //判断然后抛出异常
        public void withDrawal(double dAmount) throws InsufficientResourcesException
        {
            if(dAmount < 0)
            {
                throw new NagativeFundsException("取款数为负") ;
            }
            if(dAmount > balance)
            {
                throw new InsufficientResourcesException("余额不足") ;
            }
            balance = balance - dAmount ;
        }    

}

//接收异常
class InsufficientFundsException extends RuntimeException
{
    public InsufficientFundsException(String msg)
    {
        super(msg) ;
    }
}
//接收异常
 class NagativeFundsException extends RuntimeException
 {
    public NagativeFundsException(String msg)
    {
        super(msg) ;
    }
 }

 

posted @ 2016-09-23 19:26  丶疏影横斜  阅读(266)  评论(0编辑  收藏  举报