猿问

TryCatch语句中两个类似方法名出现不同的结果......?

public int test3(){

int divider=10;

int result=100;

try{

while(divider>-1){

divider--;

result=result+100/divider;

}

}

catch(Exception e){

e.printStackTrace();

System.out.println("程序抛出异常啦!!!");

}

finally{

System.out.println("这是finally!!哈哈!!");

System.out.println("我是result!我的值是:"+result);    这一句输出是    我是result!我的值是:381;

}

System.out.println("我是test3()我运行完了!表想我。。");

return 1111;

}

}

public int test2(){

int divider=10;

int result=100;

try{

while(divider>-1){

divider--;

result=result+ 100/divider;

}

return result;

}

catch(Exception e){

e.printStackTrace();

System.out.println("程序抛出异常了!!");

return result=999;

}

finally{

System.out.println("这是finally!!哈哈!!");

System.out.println("我是result!我的值是:"+result);    这一句的输出是999,怎么回事???

}


慕的地0971735
浏览 1317回答 1
1回答

一切都是算计

程序出现异常了  , 因为 执行了divider--   ,所以divider每次递减1 ;当divider=0时,result=result+ 100/divider中的100/divider就是100/0,0不能作为除数,所以会产生一个除数为0的异常,catch捕获了这一异常,执行return result=999;将result赋值为999,所以最后输出999
随时随地看视频慕课网APP

相关分类

Java
我要回答