使用するコードに例外トレースポイントを追加する前に、これらのガイドラインをお読みください。
エントリまたは終了トレースポイントが指定されているすべてのメソッドにトレースポイントを使用します。また、例外を取得して再スローするメソッドにトレースポイントを使用します。Identity Manager は、新しい例外が元の例外をラップしている例外をスローすることがあります。エントリと終了トレースポイントで使用しているものと同じトレースレベルを使用してください。
現メソッドから例外が作成されてスローされる場合は、例外トレースポイントを使用します。
例外が取得されて処理される場合は、例外トレースポイント caught メソッドを使用します。たとえば、現メソッドから例外がスローされない場合などです。この状況は、Identity Manager が例外を取得して処理する際、後から調査しようと WavesetResult などのコンテナにそれを配備したときによく起こります。
現メソッドからスローされた例外が、java.lang.RuntimeException または java.lang.Error を拡張する例外の checked 例外でなければ、ほかの措置が講じられるまでこのメソッドの終了ポイントはトレースされません。この状況で例外トレースポイントを設定するには、try/catch ブロックをそのメソッドの重大域の周りに使用して、発生する例外を再スローする方法があります。つまり、メソッドが成功したか失敗したかを調べることが欠かせないときは、通常 Trace.Level3 以上の使用が必要になります。
次に、簡易例外トレース文の例を示します。この例では、次の CLASS 変数が宣言されているものとします。
private static final String CLASS = "com.waveset.adapter.MyResourceAdapter"; protected static Trace _trace = Trace.getTrace();
try { someMethod(); } catch(Exception e) { _trace.throwing(_trace.ALWAYS, CLASS, METHOD, e); throw e; } try { someMethod(); } catch(Exception e) { _trace.throwing(_trace.ALWAYS, CLASS, METHOD, e); WavesetException we = new WavesetException(Some Message, e); throw we; } if (error) { WavesetException e = new WavesetException(Some Error Message.; _trace.throwing(_trace.LEVEL3, CLASS, METHOD, e); throw e; } try { someMethod(); } catch(Exception e) { _trace.caught(_trace.LEVEL1, CLASS, METHOD, e); } // execution continues. someOtherMethod();