Java の標準クラスの例外の安全性に関する詳細を取得する方法はありますか? 主に C++ と C# を使用しており、Java の例外仕様について混乱しているため、例外の適切な処理方法を理解する必要があります。
より具体的に考えてみましょうServerSocket
。オブジェクトが構築されるとすぐに、着信接続のリッスンを開始します。次に、accept()
接続を受け入れるために使用する必要があります (誰かが接続しようとした場合)。
以前に でサーバー ソケットを構成したことがある場合は、指定された時間内に誰も接続を試みなかったため、スローさsetSoTimeout()
れる変更があります。それは問題ありません。サーバー ソケットはまだ使用できるので、もう一度呼び出すだけです。accept()
SocketTimeoutException
accept()
しかし、投げるSocketTimeoutException
ことができるのはそれだけではありません。accept()
他のすべての例外はどういう意味ですか? accept()
への呼び出しを2 つの catch 句でラップする場合: forSocketTimeoutException
とIOException
、句に入った後でも関連するインスタンスを安全に使用できますか?ServerSocket
IOException
Java全体とServerSocket固有の両方の回答をいただければ幸いです。