我正在創建一個需要偵聽傳入UDP包的服務器。DatagramSocket.receive()何時拋出IOException?
我的問題是我不知道如何處理 DatagramSocket.receive()
。我可以找到每個教程,只是打印它的堆棧跟蹤並繼續或從方法中拋出。沒有人實際告訴我什麼時候或爲什麼拋出異常。即使是剛剛的Javadoc指出:
IOException - if an I/O error occurs when creating the socket.
這讓我很難回答,我應該在這種情況下做的。
- 我可以安全地恢復讀取套接字嗎?
- 我應該關閉它,然後再試一次嗎?
- 我應該把它當成一個致命的異常並且放棄一切嗎?
你是否期待很多這樣的例外?如果沒有,您可以顯示/記錄exception.message,睡眠(1000)以防止連續錯誤發生失控異常,然後重試。 –
嗯,就是這樣。因爲我不知道是什麼導致它,我不知道會發生什麼。 如果這件事發生在這個接收下,最好再嘗試一次,但是如果套接字被炸了,最好試着重新打開套接字,如果我不幸運,最好的辦法是記錄它並提醒有人來儘快查看。 當然,我可以統計重試次數和備用次數,但我想這肯定是有意義的。 – Pajn