|
Java Debug Interface | ||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
public interface ExceptionEvent
ターゲット VM の例外通知。現在有効になっている例外要求
を満たす例外がスローされると、このクラスのインスタンスを含むイベントセット
が VM のイベントキューに追加されます。例外が非ネイティブメソッドからスローされた場合、例外イベントは例外がスローされた位置で生成される。例外がネイティブメソッドからスローされた場合、例外がスローされた後の最初の非ネイティブ位置で例外イベントが生成される
メソッドの概要 | |
---|---|
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 |
メソッドの詳細 |
---|
ObjectReference exception()
Throwable
のインスタンスまたはターゲット VM 内のサブクラスです。
ObjectReference
。Location catchLocation()
例外の発生時に呼び出しスタック内にネイティブメソッドが存在する場合は、返されるキャッチ位置について重要な制約があるので要注意。そのような場合、呼び出しスタック上の何らかのネイティブメソッドにより例外が処理されるかどうかは予測できない。そのため、ここでキャッチされなかったと見なされた例外が、実はネイティブメソッドによって処理されていて、ターゲット VM を終了させないという状況が起こり得る。さらに、ここで返されるキャッチ位置に、例外をスローしたスレッドが必ず到達すると見なすこともできない。現在位置とキャッチ位置との間にネイティブフレームが存在する場合には、例外がネイティブメソッド内で処理され、クリアされる可能性がある
ソースコードに try-catch ブロックが明示的に指定されていない場合は、コンパイラによって try-catch ブロックが生成されることがあります。 たとえば、synchronized
ブロックと finally
ブロックのコードが生成されたときに、暗黙の try-catch ブロックが生成されることがあります。例外のスロー時にその種の暗黙的に生成された try-catch ブロックが呼び出しスタック上に存在する場合は、ソースコード上では例外がキャッチされないように見えるとしても、例外はキャッチされたと見なされる
Location
。例外がキャッチされない場合は null。
|
Java Debug Interface | ||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |