モジュール jdk.jdi
パッケージ com.sun.jdi.event

インタフェースExceptionEvent

すべてのスーパー・インタフェース:
Event, Locatable, LocatableEvent, Mirror

public interface ExceptionEvent
extends LocatableEvent
ターゲットVMの例外通知。 現在有効なexception requestを満たす例外がスローされると、このクラスのインスタンスを含んでいるevent setがVMのイベント・キューに追加されます。 例外が非ネイティブ・メソッドからスローされた場合、例外イベントは例外がスローされた位置で生成される。 例外がネイティブ・メソッドからスローされた場合、例外がスローされたあとに到達した最初の非ネイティブ位置で例外イベントが生成されます。
導入されたバージョン:
1.3
  • メソッドのサマリー

    修飾子と型 メソッド 説明
    Location catchLocation()
    例外がキャッチされる位置を取得します。
    ObjectReference exception()
    スローされた例外オブジェクトを取得します。

    インタフェース com.sun.jdi.event.Eventで宣言されたメソッド

    request

    インタフェース com.sun.jdi.Locatableで宣言されたメソッド

    location

    インタフェース 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。