- 所有父级接口:
Event,Locatable,LocatableEvent,Mirror
目标 VM 中的异常通知。当抛出满足当前启用的
exception request 的异常时,包含此类实例的 event set 将添加到 VM 的事件队列中。如果异常是从非本机方法抛出的,则在抛出异常的位置生成异常事件。如果异常是从本机方法抛出的,则在抛出异常后到达的第一个非本机位置生成异常事件。
- 自从:
- 1.3
-
方法总结
在接口 com.sun.jdi.event.LocatableEvent 中声明的方法
thread在接口 com.sun.jdi.Mirror 中声明的方法
toString, virtualMachine
-
方法详情
-
exception
ObjectReference exception()获取抛出的异常对象。异常对象是Throwable的实例或目标 VM 中的子类。- 返回:
ObjectReference镜像目标 VM 中抛出的对象。
-
catchLocation
Location catchLocation()获取将捕获异常的位置。如果在抛出点当前位置动态包含在处理异常的 try 语句中,则认为异常被捕获。 (有关详细信息,请参阅 JVM 规范)。如果有这样的 try 语句,则 catch 位置是相应 catch 子句的第一个代码索引。如果在异常发生时调用堆栈中有本地方法,则需要注意有关返回的 catch 位置的重要限制。在这种情况下,无法预测调用堆栈上的某个本机方法是否会处理异常。因此,这里认为未捕获的异常实际上可能会由本地方法处理,而不会导致目标 VM 终止。此外,不能假定抛出线程永远会到达此处返回的捕获位置。如果当前位置和捕获位置之间存在本机帧,则可能会在该本机方法中处理和清除异常。
请注意,在某些情况下,编译器可以生成 try-catch 块,这些块在源代码中不明确;例如,为
synchronized和finally块生成的代码可以包含隐式 try-catch 块。如果在抛出时调用堆栈中存在此类隐式生成的 try-catch,则异常将被视为已捕获,即使在检查源代码时它似乎未被捕获。- 返回:
-
将捕获异常的
Location或如果未捕获异常则为 null。
-