哪位大侠帮我看看这到笔试题,Exception的,题目很有意思,可惜刚来,分不多
public class throwExpTest {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println(fun1(4));
System.out.println(fun1(3));
System.out.println(fun1(2));
System.out.println(fun1(1));
System.out.println(fun1(0));
System.out.println(fun1(-1));
System.out.println(fun1(-2));
System.out.println(fun1(-3));
System.out.println(fun1(-4));
}
public static int fun1(int i)
{
try{
return ((Exp1)(fun0(i))).mul(5);
}catch(Exp2 e){ return e.add(i);}
catch(Exp3 e){return e.add(i); }
catch(Exception e){return -2;}
//return -1;
}
public static Exception fun0(int i)throws Exception{
Exception e[]={null,new Exp1(),new Exp2(),new Exp3()};
if(i>0)throw e[i];
else if(i<0){e[0]=e[-i];}
return e[0];
}
}
class Exp1 extends Exception{
int add(int i){return i+2;}
int mul(int i){return i*2;}
}
class Exp2 extends Exp1{
int add(int i){return i+3;}
int mul(int i){return i*3;}
}
class Exp3 extends Exp1{
int add(int i){return i+4;}
int mul(int i){return i*4;}
}