1. ホーム
  2. java

[解決済み] JavaにおけるprintStackTrace()メソッドの用途は何ですか?

2022-03-06 04:39:17

質問

私は、あるソケット・プログラムを進めています。その中で printStackTrace が呼び出されるのは IOException オブジェクトをキャッチブロックに追加します。
とは何ですか? printStackTrace() は、実際にどのようなものなのでしょうか?

catch(IOException ioe)
{
    ioe.printStackTrace();
}

用途がわからない。何に使うのでしょうか?

解決方法は?

それは Exception インスタンスで にそのインスタンスのスタックトレースを表示します。 System.err .

これは非常にシンプルですが、例外を診断するのに非常に便利なツールです。何が起きたのか、コードのどこで起きたのかを教えてくれます。

実際にどのように使うかの例です。

try {
    // ...
} catch (SomeException e) { 
    e.printStackTrace();
}

真面目なプロダクション・コードでは、さまざまな理由から、通常はこのようなことはしたくないことに注意してください (たとえば、次のような理由です)。 System.out は有用性が低く、スレッドセーフではありません)。このような場合、通常は次のようなコマンドを使用して、同じ (または非常に似た) 出力を提供する何らかのログフレームワークを使用します。 log.error("Error during frobnication", e); .