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;
}