入出力例外とは、通常の入出力操作を台無しにしてしまったものです。閉じられたファイルからの読み取り、削除されたファイルからの読み取り、閉じられたソケットからの読み取り、読み取りまたは書き込みで問題が発生する可能性のあるほぼすべてのシナリオを含む、さまざまなシナリオをカバーするために意図的にあいまいです。何にでも。
障害から回復できるコードを作成する場合 (ネットワーク接続が不良読み取り時に再接続を試みるなど)、IOException
処理を続行するには、「回復」手順をキャッチして実行する必要があります。実際に障害から回復しない場合は、(おそらく) IOException
method をマークして次のレベルに上昇させる必要がありthrows IOException
ます。
それらをキャプチャIOExceptions
して何もしないことは、デバッグが難しい本当に悪いバグのレシピです. あなたは警告されました。やらないでください。
IOException
スローされる「新しい」例外が入力/出力の不安定性に起因する障害の影響を受けるというまれな状況がない限り、を拡張しないでください。の場合、MalformedDataException
それがスローされる理由は、入力から期待したものとは違うものを読み取ったためです。
通常、入力と出力は回線干渉の影響を受けるため、 がIOException
不正な形式のデータに適しているかどうかについては、いくつかの論争があります。私は個人的に物事の「不適切」な側面に傾倒しています。これは、人々がデータの完全性ではなく、行の完全性に疑問を抱く傾向があるためです。