异常题目

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;

}

}

 

package exception;

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 a)
//		{
//			System.out.println(a.getMessage()+"被除数不能为0");
//		}
//		catch(NullPointerException n)
//		{
//			System.out.println(n.getMessage()+"空指针");
//			n.printStackTrace();
//		}
//		catch(ArrayIndexOutOfBoundsException ar)
//		{
//			System.out.println(ar.getMessage()+"索引超出长度");
//			ar.printStackTrace();
//		}
		catch(StringIndexOutOfBoundsException s)
		{
			System.out.println(s.getMessage()+"此处不能是字符串");
			s.printStackTrace();
			
		}
		
		
	}

}

  

 

 

 

 

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

 

package exception;

public class Bank {
	
		double  balance;//存款

		public Bank(double balance) {
			super();
			this.balance = balance;
		}
		
		//取款
		
		//判断然后抛出异常
		public void withDrawal(double dAmount) throws InsufficientResourcesException, NagativeFundsException
		{
			 if(dAmount < 0)
	            {
	                throw new NagativeFundsException("取款数是负的") ;
	            }
	            if(dAmount > balance)
	            {
	                throw new InsufficientResourcesException("余额不足") ;
	            }
	            
	            balance -=  dAmount ;
	            
		}

	
}

  

package exception;

public class InsufficientResourcesException extends Exception {
	//接受Bank抛出的异常
	public InsufficientResourcesException(String msg)
    {
        super(msg) ;
    }

}

  

package exception;

public class NagativeFundsException extends Exception {
	
	 public NagativeFundsException(String msg)
	    {
	        super(msg) ;
	    }


}

  

package exception;

public class Ceshi_bank {

	public static void main(String[] args) throws InsufficientResourcesException, NagativeFundsException {
		// TODO 自动生成的方法存根
		
		Bank b=new Bank(100);
		b.withDrawal(150);
		b.withDrawal(-15);

	}

}

  

 

posted @ 2016-09-24 08:25  琢磨先生  阅读(335)  评论(0编辑  收藏  举报
AmazingCounters.com