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,怎么回事??? }
1 回答
已采纳
一切都是算计
TA贡献16条经验 获得超10个赞
程序出现异常了 , 因为 执行了divider-- ,所以divider每次递减1 ;当divider=0时,result=result+ 100/divider中的100/divider就是100/0,0不能作为除数,所以会产生一个除数为0的异常,catch捕获了这一异常,执行return result=999;将result赋值为999,所以最后输出999
添加回答
举报
0/150
提交
取消