BufferedReader在连接到套接字结束后不抛出异常

时间:2014-05-20 16:57:31

标签: java sockets exception-handling connection bufferedreader

当按下按钮时,我使用bufferedReader从客户端的服务器读取输出,它工作正常,但是当连接关闭时我无法使用方法errorHandling - 我包装(bufferedreader对象)。 try / catch中的readLine但它不会抛出异常,当连接失败时out.checkError也不会返回true。如果连接结束,该程序只是完全冻结并且没有达到最后一次捕获。

        if(source==button) {
        String back = "";

        if(out.checkError()){
            errorHandling("I/O Closed");
            return;
        }

        switch(currentOp){
            case(0):
                out.println("R "+input.getText());
                break;
            case(1):
                out.println("P "+input.getText());
                break;
            case(2):
                out.println("M "+input.getText());
                break;
        }

        try{

            if((back=in.readLine())==null) throw new SocketServerException();
        }

        catch(Exception e){
            errorHandling("I/O Closed");
            return;
        }

1 个答案:

答案 0 :(得分:0)

你描述的情况是不可能的。因此,它没有发生。对等套接字必须仍然是打开的。检查你的观察结果。