为以下问题我快到达疯到的边缘,希望大家帮帮我救救我,不知道我会不会因为这问题而死掉。我写了个聊天程序,服务器端给用户发送数据如下(已简化)try
{
    System.out.println("sendDate:-1-");
    //socketChannel是对象SocketChannel
    socketChannel.write(byteBuffer);
    System.out.println("sendDate:-2-");
}
catch(Exception e)
{
    System.out.println("sendDate:-3-");
}以上代码正常情况下运行无错,可是偶然会发生奇怪的现象,当运行到socketChannel.write(byteBuffer);时就停住了,再也不向下运行了,在输出文件里只看到“sendDate:-1-”,没有“sendDate:-2-”和“sendDate:-3-”,这证明运行到socketChannel.write(byteBuffer)时就停住了。我想不通的是,当运行到socketChannel.write(byteBuffer)时,如果:
1、尚未连接此通道,抛出NotYetConnectedException
2、此通道已关闭,抛出ClosedChannelException
3、正在进行写入操作时另一个线程关闭了此通道,抛出AsynchronousCloseException
4、正在进行写入操作时另一个线程中断了当前线程,因此关闭了该通道并将当前线程的状态设置为中断,抛出ClosedByInterruptException
5、发生其他 I/O 错误,抛出IOException至少有个异常抛出啊,可是它就是不返回和抛出异常,整个系统就因为其中一个socketChannel.write(byteBuffer)停住而崩溃了。不知道大家有没有碰到这类问题,请帮帮小弟,救我~~救我~~哭~~