public boolean connectTest(String ip, int port)
{
Socket nodeSocket = null;
try
{
nodeSocket = new Socket(ip, port);
} catch (Exception e)
{
System.out.println("Cannot Connect with Server:" + e);
return false;
}
try
{
nodeSocket.close();
} catch (IOException e)
{
System.out.println("system cannot close socket" + e.getMessage());
return false;
}finally
{
return true;
}
}看了这代码?, 才发现博士原来也可以不用太博学...

解决方案 »

  1.   

    what do you mean....what supposed do you want to say......
      

  2.   

    这个方法永远返回true...finally块里面的return true,决定了该方法永远返回true...
      

  3.   

    永远返回true.  好牛的代码。
      

  4.   

    finally
            {
                return true;
            }
      

  5.   


    public boolean connectTest(String ip, int port) { 
        Socket nodeSocket = null; 
        try  { 
            nodeSocket = new Socket(ip, port); 
        } catch (Exception e) { 
            System.out.println("Cannot Connect with Server:" + e); 
            return false; 
        } 
        try  { 
            nodeSocket.close(); 
        } catch (IOException e) { 
            System.out.println("system cannot close socket" + e.getMessage()); 
            return false; 
        } //finally  { 
            return true; 
    //    } 
    }
      

  6.   

    如果第一个catch的话,应该还是返回false的
      

  7.   

    try 
    catch 语句中后面加上fianlly的话就是要强制执行。。不管怎么样最后都要运行里面的命令在怎么样也都是 true啊!
      

  8.   

    可以返回false的,两个try不是嵌套的,第一个catch的话就false了,虽然这代码写的很搞笑
      

  9.   

    应试教育跟实际生产基本就不能放在一起谈;
    写了5年JAVA,自考本科的JAVA模拟卷,不及格!!!
    感觉像初中时期考政治!!!
    研究生毕业和专科毕业差别就在于牌子比人大,年纪比人大,钱拿的比人多!!!
      

  10.   

    说这个确实没什么意思。人家的价值也不是体现在这里。况且也就是一个bug而已,谁写程序没有bug呢。
      

  11.   

    不好说,也许是初学java  socket编程吧
      

  12.   

    人家是理论型的,不干这种体力活的。出这种低级bug也不能说人家不行啊。
      

  13.   

    他的意图是未连接成功返回false,连接成功不管断得掉与否都返回true.应该还算工整。除了第二个return false.
      

  14.   

    此博士编写Java程序水平很高,用极少的代码完成了连接测试工作.
      

  15.   

    finally
            {
                return true;
            }
    这段很值得商榷?!
      

  16.   

    无论能否关闭连接都返回true,表明能够连接成功.有什么问题?
      

  17.   

    我倒!~~~try模块还跟return搞在一起。
      

  18.   

    println出来的错误信息也不是那么友好:)
    呵呵,开个玩笑,纯为赚分.
      

  19.   

    西南java技术讨论专区群号:78152089,欢迎加入..
      

  20.   

    他就是做一个连接测试呀,连接成功返回false,连接不成功返回true,开始看也觉得很搞笑,不过可能人家本来的意思就是只要确定是否连接成功呀,另外两个trycatch字句并不是嵌套的,可以完成测试
      

  21.   

    就算是计算机专业的都不一定能写的出来吧...或者写的比他好.看看现在的大学生啊...会写代码的有几个.更别说了解socket,知道何时用try catch 和finnally了
      

  22.   

         有些人,会读书,却读死书.    读书
         有些人,会交际,却没能力.    交际  ==  成功
         有些人,有能力,却没关系.    关系
         
         syetem.out.println{"读书+交际+关系=",读书+交际+关系}; 
         
      

  23.   


    public boolean connectTest(String ip, int port) { 
        return true; 
    }他太牛了,写了这么多 ,结果返回的和我的 一样!!
      

  24.   

    楼主还是先看看这个程序再说吧,这个博士写的未必有错,或者是我们想错了public class TestFinally { public int doPrint() {
    int a = 0;
    try {
    a = 1;
    throw new Exception();
    } catch (Exception e) {
    System.out.println("catch_开始");
    return a; } finally {
    System.out.println("finally_开始" + a);
    a = 3;
    System.out.println("finally_完毕" + a);
    }
    } public static void main(String[] args) {
    TestFinally t = new TestFinally();
    System.out.println("得到返回的值" + t.doPrint());
    }}看看他的执行结果吧catch_开始
    finally_开始1
    finally_完毕3
    得到返回的值1由此可见,这个博士写的代码并没错,反而是对finally有深刻认识才能写出的
      

  25.   

    http://topic.csdn.net/u/20090620/20/66c111c6-e48a-48a7-9a94-99686d34787b.html?23096
    这个帖子有点扯
      

  26.   

    finally要看清,不可能返回false的
      

  27.   

    谁说不可能返回false?第一个出现异常的话不就返回false?难道是我想错了????????永远返回true?
      

  28.   

    还有一处错误,你们都没看出来吗? nodeSocket.close();
    应改为if(nodeSocket!=null){
      nodeSocket.close();
    }
    不然第一个异常后  第二个接着空异常
      

  29.   

    我跟楼上各位的想法非常不一致。
    为啥博士毕业就必须要很熟练的能写JAVA代码?
      

  30.   

    关于是否永远返回true引起大家的深刻思考和广泛讨论,不愧是知名大学的博士生写的代码。