当前位置: 代码迷 >> Java相关 >> [求助]这个-1从哪来?(怎么没人来帮下啊)
  详细解决方案

[求助]这个-1从哪来?(怎么没人来帮下啊)

热度:457   发布时间:2006-09-06 06:33:26.0
[求助]这个-1从哪来?(怎么没人来帮下啊)

What will be output if you try to compile and run the following code, but there is no file called Hello.txt in the current directory?

import java.io.*;

public class Test
{
public static void main(String argv[])
{
Test t = new Test();
System.out.println(t.myMethod());
}

public int myMethod()
{
try
{
FileInputStream dis = new FileInputStream("Hello.txt");
}
catch (FileNotFoundException fne)
{
System.out.println("No such file found");
return -1;
}
catch(IOException ioe)
{
}
finally
{
System.out.println("Doing finally");
}
return 0;
}
}
结果为什么会是:No such file found, Doing finally, -1。。
这个-1是怎么回事?

[此贴子已经被作者于2006-9-6 14:51:42编辑过]

搜索更多相关的解决方案: following  current  public  called  import  

----------------解决方案--------------------------------------------------------
我觉的是由于,调用myMethod函数时,反回值是int型的,所以打印出来了吧.抛出的是catch (FileNotFoundException fne)
{
System.out.println("No such file found");
return -1;
}
这个异常
----------------解决方案--------------------------------------------------------

我认为是
首先你在调用myMethod方法时,在你的方法内首先调用myMethod的println()方法,最后返回-1!


----------------解决方案--------------------------------------------------------
楼上两位说的有点理,可是如果把return -1这一句注释掉,就会得到0  那为什么不注释掉不是的呢?
也就是说return -1把return 0给屏必了,这个怎么解释。。。
----------------解决方案--------------------------------------------------------

return 0; 这段代码根本没有被执行,所以没打出来.程序在执行完finally中的代码后就结束了.不会执行它后边的代码的! 


----------------解决方案--------------------------------------------------------

楼上说得对


----------------解决方案--------------------------------------------------------
刚看了下书。finally后的代码会执行。但 在你的代码的 return 0 前加段输出语句却没被执行 不知道咋回事了 期待高人解释下。我也糊涂了。应该是那个return -1的事! 但为什么在return 0 前加输出语句也不执行了呢?
----------------解决方案--------------------------------------------------------
.....等特ing
----------------解决方案--------------------------------------------------------
出异常了 后面的代码就不执行了 但必需执行finally里面的代码
你的程序的括号匹配太让人迷惑了!!
我开始还以为是finally里面的呢

----------------解决方案--------------------------------------------------------

楼上的还是没能说明为什么再把return -1 注释掉后会得到0   而不注释就是-1
大括号不是我括的 我是直接复过来的  不好意思 呵呵  这是一道SCJP试题。。


----------------解决方案--------------------------------------------------------
  相关解决方案