我正在创建一个需要监听传入 UDP 包的服务器。
我的问题是我不知道如何处理 DatagramSocket.receive()
上的 IOException
。我能找到的每个教程要么只是打印其堆栈跟踪并继续,要么将其从方法中丢弃。没有人真正告诉我何时或为何抛出异常。甚至 Javadoc 也只是指出:
IOException - if an I/O error occurs when creating the socket.
这让我很难回答在这种情况下我应该做什么。
- 我可以安全地继续读取套接字吗?
- 我应该关闭它并重试吗?
- 我应该将其视为致命异常并退出一切吗?
最佳答案
如果您设置了读取超时并且超时,它会抛出SocketTimeoutException
。在这种情况下,您可以重试。如果出现其他错误,它会抛出 IOException:大多数错误对于套接字来说都是致命的,您必须将其关闭。
关于java - DatagramSocket.receive() 什么时候抛出 IOException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19875464/