Java Debug Interface

com.sun.jdi.event
インタフェース ExceptionEvent

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

public interface ExceptionEvent
extends LocatableEvent

ターゲット VM の例外通知。現在有効になっている例外要求を満たす例外がスローされると、このクラスのインスタンスを含むイベントセットが VM のイベントキューに追加されます。例外が非ネイティブメソッドからスローされた場合、例外イベントは例外がスローされた位置で生成される。例外がネイティブメソッドからスローされた場合、例外がスローされた後の最初の非ネイティブ位置で例外イベントが生成される

導入されたバージョン:
1.3

メソッドの概要
 Location catchLocation()
          例外がキャッチされる位置を取得します。
 ObjectReference exception()
          スローされた例外オブジェクトを取得します。
 
インタフェース com.sun.jdi.event.LocatableEvent から継承されたメソッド
thread
 
インタフェース com.sun.jdi.event.Event から継承されたメソッド
request
 
インタフェース com.sun.jdi.Mirror から継承されたメソッド
toString, virtualMachine
 
インタフェース com.sun.jdi.Locatable から継承されたメソッド
location
 

メソッドの詳細

exception

ObjectReference exception()
スローされた例外オブジェクトを取得します。例外オブジェクトは、Throwable のインスタンスまたはターゲット VM 内のサブクラスです。

戻り値:
ターゲット VM 内でスローされたオブジェクトをミラー化する ObjectReference

catchLocation

Location catchLocation()
例外がキャッチされる位置を取得します。例外がキャッチされたと見なされるのは、スローの時点で、その例外を処理する try 文で現在の位置が動的に囲まれている場合。詳細は、JVM 仕様を参照。このような try 文がある場合は、キャッチの位置は適切な catch 節の最初のコードインデックスになります。

例外の発生時に呼び出しスタック内にネイティブメソッドが存在する場合は、返されるキャッチ位置について重要な制約があるので要注意。そのような場合、呼び出しスタック上の何らかのネイティブメソッドにより例外が処理されるかどうかは予測できない。そのため、ここでキャッチされなかったと見なされた例外が、実はネイティブメソッドによって処理されていて、ターゲット VM を終了させないという状況が起こり得る。さらに、ここで返されるキャッチ位置に、例外をスローしたスレッドが必ず到達すると見なすこともできない。現在位置とキャッチ位置との間にネイティブフレームが存在する場合には、例外がネイティブメソッド内で処理され、クリアされる可能性がある

ソースコードに try-catch ブロックが明示的に指定されていない場合は、コンパイラによって try-catch ブロックが生成されることがあります。 たとえば、synchronized ブロックと finally ブロックのコードが生成されたときに、暗黙の try-catch ブロックが生成されることがあります。例外のスロー時にその種の暗黙的に生成された try-catch ブロックが呼び出しスタック上に存在する場合は、ソースコード上では例外がキャッチされないように見えるとしても、例外はキャッチされたと見なされる

戻り値:
例外がキャッチされる Location。例外がキャッチされない場合は null。

Java Debug Interface