package com.imooc.test;
public class TryCatchTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
TryCatchTest tct=new TryCatchTest();
int result=tct.test();
System.out.println("test()fangfa执行完毕,返回值为"+result);
}
public int test(){
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 -1;
}
}
}
return 写在while循环里面,导致只执行一次循环,就return 结束了。
package com.imooc.test; public class TryCatchTest { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub TryCatchTest tct = new TryCatchTest(); int result = tct.test(); System.out.println("test()fangfa执行完毕,返回值为" + result); } public int test() { 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 -1; } } }
try块中 return result应该放在 while 循环的外面
try{ while(divider>-1){ divider--; result=result+100/divider; } return result; }catch(Exception e){ e.printStackTrace(); System.out.println("循环抛出异常了"); return -1; }
return result;
这句代码应该写在循环外面,
你写在循环里面了,
当写在循环内时,循环执行到return result;
就立即结束该方法了,就不会引发异常了
没有返回值啊 在捕获异常块里面写返回值是不行啊 万一没有异常呢??那就没有返回值了啊
错误的信息是什么啊?
public int test(){
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 -1;
}
//方法的结尾处需要一个返回值,而不是在try catch内。
return 0;
}