高手,您好。最近小弟在写一个程序,遇到了一个很难很奇葩的故障点,希望高手,能够支招。
        现场如下:
        
        (图片1)
        点击出现故障的代码第367行:
        
        (图片2)
        点击出错的代码行,第367行代码,得到的错误现场如下:
        
        (图片3)
        上图中第355行代码中的“ServerThread()”方法,他的代码如下:
        
        (图片4)
        高手,这里的“ServerThread()”方法,它的主要目的,就是为了“init”一下“图片2”中向外写字的t“out”,“outStr”等对象的目的,可是,在经过了“先ServerThread()”,后“outStr方法写出”的代码布局后,他还是报出空指针异常。
        高手,您能告诉弟,弟的代码,错在哪里吗?
        谢谢高手的过目!!

解决方案 »

  1.   

    在487行抓一下异常,有可能还没有执行到outStr初始化就已经抛出异常了
      

  2.   

    错误看不出来, 感觉代码设计有些乱. client端的话没有必要synchronized同步. 还有就是soo2.ServerThread(soo2.getS())这句很奇怪. 都是同一个对象的方法, 没必要做为参数传进去直接在ServerThread方法取this.socket.
      

  3.   

    什么需求 ServerThread()这样写没问题
      

  4.   

    谢谢一楼的高手,xixibudong,二楼的高手,bree06,三楼的高手,adfldk,三位老师的捧场!!
            小弟的代码故障如一楼的xixibudong所述。漂亮~~
            现在小弟的这个故障点的最新进展为:
            
            (图1)
            弟把代码写成上面这样之后。
            再次运行弟的程序,得到的结果如下:
            
            (图2)
            点击其中的第356行代码,得到的代码现场如下:
            
            (图3)
            点击图2中的第368行代码,得到的代码现场如下:
            
            (图4)
            高手,您能否告诉小弟:
            小弟的代码的最新进展的错误,错在哪里?如何修改吗?
            感谢高手的过目!!
      

  5.   

    现在最新的程序进展为:
           在上面的#4楼描述的代码场景下,小弟还有一个新的代码故障,如下:
           
           (图片1:运行服务器ChatServer类之前)
           
           (图片2:运行服务器ChatServer类之后)
           高手,您可以明显地看到,在小弟运行了服务器的“ChatServer类”之后,图片2的console窗口所监视的程序入口,比起小弟未运行服务器的“ChatServer类”之前,少了两个类型的程序入口。
           希望高手能够点拨:
           小弟的代码,错在哪里?如何修改?
           :谢过高手的过目!!