- 所有超级接口:
-
Event
,Locatable
,LocatableEvent
,Mirror
目标VM中异常的通知。当抛出满足当前启用的
异常请求
的异常时,将向VM的事件队列添加一个包含此类实例的事件集
。如果异常是从非本地方法抛出的,则异常事件在抛出异常的位置生成。如果异常是从本地方法抛出的,则异常事件在抛出异常后到达的第一个非本地位置生成。
- 自版本:
- 1.3
-
Method Summary
Modifier and TypeMethodDescription获取异常将被捕获的位置。获取抛出的异常对象。Methods declared in interface com.sun.jdi.event.LocatableEvent
thread
Methods declared in interface com.sun.jdi.Mirror
toString, virtualMachine
-
Method Details
-
exception
ObjectReference exception()获取抛出的异常对象。异常对象是目标VM中的Throwable
或其子类的实例。- 返回:
-
一个
ObjectReference
,它在目标VM中反映了抛出的对象。
-
catchLocation
Location catchLocation()获取异常将被捕获的位置。如果在抛出时,当前位置在动态地封闭在处理异常的try语句中,则认为异常已被捕获。(详见JVM规范)。如果存在这样的try语句,则捕获位置是适当catch子句的第一个代码索引。如果在异常发生时调用堆栈中存在本地方法,则有关返回的捕获位置有重要限制需要注意。在这种情况下,无法预测异常是否将由调用堆栈上的某个本地方法处理。因此,可能在此处被认为未被捕获的异常实际上将由本地方法处理,并且不会导致目标VM的终止。此外,不能假设此处返回的捕获位置将被抛出线程到达。如果当前位置和捕获位置之间存在本地帧,则异常可能在该本地方法中处理和清除。
请注意,编译器在某些情况下可以生成try-catch块,即使在源代码中没有明确指定;例如,为
synchronized
和finally
块生成的代码可能包含隐式的try-catch块。如果在抛出时调用堆栈上存在这样一个隐式生成的try-catch,则即使从源代码的检查中看起来未被捕获,异常也将被视为已被捕获。- 返回:
- 异常将被捕获的位置,如果异常未被捕获则返回null。
-