Interstage Application Serverにおいて、Javaアプリケーションで例外が発生した場合に、その原因を調べる方法はありますか?

Javaアプリケーションで例外が発生した場合に、その原因を調べる方法を教えてください。
例外が発生した原因の調査手段として、例外のスタックトレース情報が有効です。例外発生時にスタックトレースを出力する最も簡単な方法は、キャッチした例外に対して、printStackTrace()メソッドを呼び出すように、プログラムを記述することです。
例外をキャッチした場合は、スタックトレース情報をできるだけ出力するようにしてください。次のプログラムのように、スタックトレース情報を出力しない場合は、例外が発生したメソッドを特定するのが困難になります。

 [スタックトレースを出力しないプログラム例]
  try {
    FileInputStream fis = new FileInputStream(args[0]);
  } catch (FileNotFoundException e) {
    System.err.println(e); // 発生した例外は分かるが、発生したメソッドが分からない
  }

次のようなプログラムの場合、スタックトレース情報を出力するので、問題が発生した箇所を特定できます。

 [スタックトレースを出力するプログラム例]
  try {
    java.io.FileInputStream fis = new java.io.FileInputStream(args[0]);
  } catch (FileNotFoundException e) {
    e.printStackTrace(); // 発生した例外のスタックトレース情報を出力
  }

上記のプログラムで例外が発生すると、次のような出力を得られます。

 [スタックトレース情報の例]
  java.io.FileNotFoundException: NoSuchFile.txt (指定されたファイルが見つかりません。)
      at java.io.FileInputStream.open(Native Method)
      at java.io.FileInputStream.<init>(Unknown Source)
      at java.io.FileInputStream.<init>(Unknown Source)
      at Test.main(Test.java:6)

この場合、スタックトレース情報から、Test.javaの6行目で呼び出している、java.io.FileInputStreamコンストラクタのパラメーターに、誤りがあると推測できます。

関連FAQ:
FAQ5308 「Interstage Application Serverにおいて、Javaアプリケーションでjava.lang.NullPointerExceptionが発生した際、スタックトレース(およびException以外のメッセージ)が出力されない場合があります。」

製品・サービス区分 Interstage
製品・サービス情報
対象製品 Interstage Application Server
バージョン V9, V8, V7, V6, V5, V4, V3, V2
プラットフォーム Windows, Solaris, Linux
アンサー種別 運用/保守
このページの先頭へ