我正在创建一个需要侦听传入UDP包的服务器。DatagramSocket.receive()何时抛出IOException?
我的问题是我不知道如何处理 DatagramSocket.receive()
。我可以找到每个教程,只是打印它的堆栈跟踪并继续或从方法中抛出。没有人实际告诉我什么时候或为什么抛出异常。即使是刚刚的Javadoc指出:
IOException - if an I/O error occurs when creating the socket.
这让我很难回答,我应该在这种情况下做的。
- 我可以安全地恢复读取套接字吗?
- 我应该关闭它,然后再试一次吗?
- 我应该把它当成一个致命的异常并且放弃一切吗?
你是否期待很多这样的例外?如果没有,您可以显示/记录exception.message,睡眠(1000)以防止连续错误发生失控异常,然后重试。 –
嗯,就是这样。因为我不知道是什么导致它,我不知道会发生什么。 如果这件事发生在这个接收下,最好再尝试一次,但是如果套接字被炸了,最好试着重新打开套接字,如果我不幸运,最好的办法是记录它并提醒有人来尽快查看。 当然,我可以统计重试次数和备用次数,但我想这肯定是有意义的。 – Pajn