10

ファイル入出力ストリームを使用しています。を使用してプログラムから存在しないファイルを読み取るFileInputStreamと、FileNotFoundException. 右?したがって、この例外をキャッチし、例外で null または 0 の値を返すことができます (このすべての読み取り操作を実行するメソッドの戻り値の型によって異なります)。

IOExceptionしかし、一般的にいつ発生するのか、「これ」が「それ」のために発生したことを呼び出し元のプログラムに伝える正確な理由は何なのかはわかりません。ここで「これ」と「あれ」が何なのか、正確にはわかりません。

IOException誰でも、どのような場合に発生する可能性があり、そのような場合にどのような具体的な行動を取るべきかを詳しく教えてください. 助けてください。ありがとう。

4

3 に答える 3

8

とはIOException

IOExceptionプログラムの実行中に JVM が遭遇する予期しない問題です。発生する可能性のある問題は次のとおりです。

  • 存在しないファイルから読み取ろうとしています
  • 無効な名前を持つファイルに書き込もうとしています (タイトルにスラッシュまたは疑問符を使用する必要があります)。
  • トークンがなくなったときに、ファイル内の次のトークンを読み取ろうとしています。

がスローされた場合IOException、例外をスローしているもの (おそらくtry{}-catchファイルからデータを読み取るブロック) が をスローできることを意味しますIOException。たとえば、ファイルが見つからない、破損しているなどの場合、またはファイルが別の方法でアクセスできない場合などです。読み取り、またはIOパッケージとその拡張機能で発生する可能性のある問題のその他のリスト。

に遭遇したときの対処IOException

が発生した場合はIOException、ログに記録するか、エラー メッセージを出力できます。終了しないファイルから読み取る場合は、将来の例外を回避するためにファイルを作成できます。あなたが何をしているかに大きく依存します。デバッグしている場合は、スタック トレースを出力すると常に役立ちます。

javadocを参照してください

于 2013-10-27T09:03:02.703 に答える
1

次のことができます。

  1. 例外情報をログ ファイルに記録します。次の方法を使用して、例外情報を設定できます。

  2. 読み書きでIOECeptionが発生した際にnullでなければInputStream/OutputStreamをクローズしてみる。

  3. ユーザーに何が起こるかを知らせるために、意味のあるメッセージで独自の例外をスローします。

于 2013-10-27T09:04:59.270 に答える
0

通常、ファイルが存在しないか、読み取り/書き込みの権限がない場合などです。

もちろん、他のことも考えられるので、できる最善のことは、メッセージを出力して、例外の原因を確認することです。さらに、各クラスで、どのメソッドが何をいつスローするかを確認できます。調査することをお勧めします。これは、この例外に直面する可能性のあるより多くのケースをカバーするのに役立つ場合があります。

例外が発生した場合はどうすればよいですか。それはあなたのプログラム次第です。それに対する具体的な答えはありません。多くのことに依存します。

于 2013-10-27T09:02:40.887 に答える