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 classTestException {public static voidmain(String[] args) {//TODO 自动生成的方法存根
for(int i=0;i<4;i++){intk;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类,类中有变量doublebalance表示存款,Bank类的构造方法能增加存款,Bank类中有取款的方法withDrawal(double dAmount),当取款的数额大于存款时,抛出InsufficientFundsException,取款数额为负数,抛出NagativeFundsException,如new Bank(100),表示存入银行100元,当用方法withdrawal(150),withdrawal(-15)时会抛出自定义异常。
//自定义异常类
public class InsufficientFundsException extendsException {
InsufficientFundsException(String a)
{
}
//重写信息异常的方法
@OverridepublicString getMessage() {//TODO 自动生成的方法存根
return "取款余额不足";
}
}
//自定义异常类
public class NagativeFundsException extendsException {
NagativeFundsException(String n)
{
}
@OverridepublicString getMessage() {//TODO 自动生成的方法存根
return "存款余额为负数啦";
}
}
public classBank {private doublebalance;public doublegetBalance() {returnbalance;
}public void setBalance(doublebalance) {this.balance =balance;
}public Bank(doublemoney)
{
balance+=money;
}//声明抛出的异常
public void withDrawal(double dAmount) throwsInsufficientFundsException,NagativeFundsException
{if(dAmount >balance)
{//抛出自定义异常
throw new InsufficientFundsException("取款余额不足");
}//抛出自定义异常
else if(dAmount <0)
{throw new NagativeFundsException("取款余额为负数啦");
}
}
}
public static void main(String[] args) throwsInsufficientFundsException, NagativeFundsException {//TODO 自动生成的方法存根
Bank b = new Bank(100.0);
b.withDrawal(150);
b.withDrawal(-15);
}
}