标题:[求助]这个-1从哪来?(怎么没人来帮下啊)
只看楼主
wxhwjsw
Rank: 1
等 级:新手上路
帖 子:274
专家分:0
注 册:2006-6-15
 问题点数:0 回复次数:11 
[求助]这个-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 
2006-09-06 06:33
三颗珠子
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-8-11
得分:0 
我觉的是由于,调用myMethod函数时,反回值是int型的,所以打印出来了吧.抛出的是catch (FileNotFoundException fne)
{
System.out.println("No such file found");
return -1;
}
这个异常

2006-09-06 08:16
mercyblitz
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2006-5-20
得分:0 

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

2006-09-06 10:55
wxhwjsw
Rank: 1
等 级:新手上路
帖 子:274
专家分:0
注 册:2006-6-15
得分:0 
楼上两位说的有点理,可是如果把return -1这一句注释掉,就会得到0  那为什么不注释掉不是的呢?
也就是说return -1把return 0给屏必了,这个怎么解释。。。

一个人的快乐,不是因为他拥有的多,而是因为他计较的少.
2006-09-06 11:03
haiziwang
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-9-6
得分:0 

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

2006-09-06 22:21
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
得分:0 

楼上说得对


win32汇编
病毒 加密
目前兴趣所在
2006-09-06 22:24
haiziwang
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2006-9-6
得分:0 
刚看了下书。finally后的代码会执行。但 在你的代码的 return 0 前加段输出语句却没被执行 不知道咋回事了 期待高人解释下。我也糊涂了。应该是那个return -1的事! 但为什么在return 0 前加输出语句也不执行了呢?
2006-09-06 22:42
wxhwjsw
Rank: 1
等 级:新手上路
帖 子:274
专家分:0
注 册:2006-6-15
得分:0 
.....等特ing

一个人的快乐,不是因为他拥有的多,而是因为他计较的少.
2006-09-06 22:45
无理取闹
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:53
帖 子:4264
专家分:0
注 册:2006-7-26
得分:0 
出异常了 后面的代码就不执行了 但必需执行finally里面的代码
你的程序的括号匹配太让人迷惑了!!
我开始还以为是finally里面的呢

win32汇编
病毒 加密
目前兴趣所在
2006-09-07 08:50
wxhwjsw
Rank: 1
等 级:新手上路
帖 子:274
专家分:0
注 册:2006-6-15
得分:0 

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


一个人的快乐,不是因为他拥有的多,而是因为他计较的少.
2006-09-07 10:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-88340-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.074210 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved