gpt4 book ai didi

java - 处理 java.net.SocketException

转载 作者:太空宇宙 更新时间:2023-11-04 07:29:23 30 4
gpt4 key购买 nike

我有一个程序有时会遇到错误java.net.SocketException。有没有办法让客户端程序在(且仅当)遇到此错误时执行一些代码以便“处理”该错误?完整的错误是

java.net.SocketException: Software caused connection abort: socket write error

这是我现在所拥有的内容的摘要。

public void run()  {
try {
//some code that causes the SocketException
}

catch (SocketException e) {
System.out.println("I recognize the SocketException");
}
}

尽管出现错误,它仍然不会打印该行。

这是完整的错误

java.net.SocketException: Software caused connection abort: socket write error
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(Unknown Source)
at java.net.SocketOutputStream.write(Unknown Source)
at java.io.ObjectOutputStream$BlockDataOutputStream.drain(Unknown Source)
at java.io.ObjectOutputStream$BlockDataOutputStream.setBlockDataMode(Unknown Source)
at java.io.ObjectOutputStream.writeNonProxyDesc(Unknown Source)
at java.io.ObjectOutputStream.writeClassDesc(Unknown Source)
at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.io.ObjectOutputStream.writeFatalException(Unknown Source)
at java.io.ObjectOutputStream.writeObject(Unknown Source)
at (...).java:61)
at (...).java:164)

最佳答案

这取决于抛出异常的是客户端还是服务器。

无论哪种方式,您都应该能够在代码周围添加一个 try-catch block 。

try {
//code
} catch (SocketException e) {
// Handle the error
}

如果服务器抛出错误并且您希望客户端处理这种情况,则客户端应该由于连接丢失而抛出异常(这就是此异常的样子)。或者,如果服务器抛出错误但没有崩溃,只需让服务器向客户端发送一些发生错误的信号即可。

无论如何,只要提供更多信息,我就可以给您更好的答复。

关于java - 处理 java.net.SocketException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17979527/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com