これはおそらく初心者の質問ですが、あなたが私を助けてくれることを願っています。 :)私はこのようなものを持っています:
try
{
//try to do something there
}
catch (IOException e)
{
//handle the exception
e.printStackTrace();
}
NetBeans IDEを使用していますが、何らかの理由でprintStackTraceに波線が引かれています。 Alt + Enterを押すと、Throwable.printStackTrace()を削除する必要があります。これは何を意味するのでしょうか?これが何を意味するのかについて、誰かがより多くの洞察を与えることができますか?または、これを無視できますか?
ありがとう!
これは単なる推奨事項です。 Eclipseではそれは問題ありません-他の答えのいくつかのように、それを行うより従来の方法があることを伝えるIDEであると信じています。致命的なエラーがいつ発生するかをユーザーに伝え、デバッグモード(コンソールスイッチ-dなど)を使用してこれらのログを収集する必要があります。
試してください:
e.printStackTrace(System.out);
printStackTrace()
が実際にエラーを処理しないのは、単にコンソールにスタックをダンプするだけだからでしょう。適切なエラー処理(必要な場合)に置き換え、出力を何らかのロガーに置き換えるまで、プレースホルダーとして機能します。
e.printStackTrace();
デフォルトのErrorStream(ほとんどの場合はコンソール)で印刷されるため、お勧めしません!
NetBeansはそれについて警告しているはずです。それについての良い習慣は、メッセージを記録することです。同じ参照に従ってください:
http://onjava.com/pub/a/onjava/2003/11/19/exceptions.html
[〜#〜] edit [〜#〜]詳細については、以下の最初のコメントを参照してください。
スタックトレースを印刷するだけでは不十分です。例外のスタックトレースを印刷すること自体が完全に悪いことではありませんが、例外が発生したときにスタックトレースのみを印刷することは問題です。
常に例外をログに記録します(適切な ロギングフレームワーク を使用します)が、例外をエンドユーザーに公開しないでください。また、開発モードでのみスタックトレースを表示するようにしてください。
私自身は(ほとんどの場合)logger.log(Level.SEVERE, <exception>.getMessage(), <exception>);
を使用します。
netbeansが例外 '_Surround Statement with try-catch
_'を処理するように提案した場合、これをクリックすると生成されます):
_try {
//something need to be handle(exception that throw)
} catch (SQLException ex) {
Logger.getLogger(ClassName.class.getName()).log(Level.SEVERE, null, ex);
}
_
ex.printStackTrace();
よりも優れています。
これらが役立つ場合があります。