- すべてのスーパー・インタフェース:
Event
,Locatable
,LocatableEvent
,Mirror
public interface ExceptionEvent extends LocatableEvent
ターゲットVMの例外通知。 現在有効な
exception request
を満たす例外がスローされると、このクラスのインスタンスを含んでいるevent set
がVMのイベント・キューに追加されます。 例外が非ネイティブ・メソッドからスローされた場合、例外イベントは例外がスローされた位置で生成される。 例外がネイティブ・メソッドからスローされた場合、例外がスローされたあとに到達した最初の非ネイティブ位置で例外イベントが生成されます。 - 導入されたバージョン:
- 1.3
-
メソッドのサマリー
修飾子と型メソッド説明例外がキャッチされる位置を取得します。スローされた例外オブジェクトを取得します。インタフェース com.sun.jdi.event.LocatableEventで宣言されたメソッド
thread
インタフェース com.sun.jdi.Mirrorで宣言されたメソッド
toString, virtualMachine
-
メソッドの詳細
-
exception
ObjectReference exception()スローされた例外オブジェクトを取得します。 例外オブジェクトは、ターゲットVM内のThrowable
またはサブクラスのインスタンスです。- 戻り値:
- ターゲットVM内でスローされたオブジェクトをミラー化する
ObjectReference
。
-
catchLocation
Location catchLocation()例外がキャッチされる位置を取得します。 例外がキャッチされたと見なされるのは、スローの時点で、その例外を処理するtry文で現在の位置が動的に囲まれている場合。 詳細は、JVM仕様を参照。 このようなtry文がある場合は、キャッチの位置は適切なcatch節の最初のコード・インデックスになります。例外の発生時に呼出しスタック内にネイティブ・メソッドが存在する場合は、返されるキャッチ位置について重要な制約があるので要ノート。 そのような場合、呼出しスタック上の何らかのネイティブ・メソッドにより例外が処理されるかどうかは予測できない。 そのため、ここでキャッチされなかったと見なされた例外が、実はネイティブ・メソッドによって処理されていて、ターゲットVMを終了させないという状況が起こり得る。 さらに、ここで返されるキャッチ位置に、例外をスローしたスレッドが必ず到達すると見なすこともできない。 現在位置とキャッチ位置との間にネイティブ・フレームが存在する場合には、例外がネイティブ・メソッド内で処理され、クリアされる可能性がある。
ソース・コードにtry-catchブロックが明示的に指定されていない場合は、コンパイラによってtry-catchブロックが生成されることがあります。たとえば、
synchronized
ブロックとfinally
ブロックのために生成されたコードに暗黙のtry-catchブロックが含まれることがあります。 例外のスロー時にその種の暗黙的に生成されたtry-catchブロックが呼出しスタック上に存在する場合は、ソース・コード上では例外がキャッチされないように見えるとしても、例外がキャッチされると考えられます。- 戻り値:
- 例外がキャッチされる
Location
、または例外がキャッチされない場合はnull。
-