本帖最后由 林志花 于 2012-11-28 20:20 编辑
这是在做基础测试时,我为下题设计的思路,明显不对。但是程序写出来,在JCreator中编译通过,没有错误和警告,但是运行起来,出现不正常提示:
Exception in thread "main" java.lang.NoSuchMethodError:Main
换到eclipse中运行,程序结果是另外一个程序的结果,总之,没出现正常结果。。汗一个~~
写一个类证明return是在finally执行后才返回的,且在finally无法改变返回值。
我的算法老师说,最喜欢碰到这样的程序,语法正确,但是程序可能逻辑或者算法不正确。。。
好啦,烦请大鸟上场帮忙啦~
//return和finally的执行次序问题
class Re
{
static int x,y;
public static int devide(int x,int y) //方法返回x/y的值
{
return x/y;
}
public static int main(String[] args)
{
int result=0; //result赋初值0
try{
result=devide(3,0); //出现错误的地方,即使改成将(3,1),还是出现同样的编译、运行结果
result++;
System.out.println("this is in try"); //提示try执行
}
catch (ArithmeticException e)
{
System.out.println(" ArithmeticException catched! "); //提示catch执行,捕捉到错误
}
finally
{
System.out.println("Finally!~"); //提示fianally执行了
result+=10; //改变result值
}
return result; //返回result值(个人感觉认为是这里出现错误。。但是不知道怎么改啊~)
}
}
|