Module jdk.jdi

Interface ExceptionRequest

所有超级接口:
EventRequest, Mirror

public interface ExceptionRequest extends EventRequest
在目标VM中发生异常时请求通知。当启用的ExceptionRequest满足时,将在EventQueue上放置一个包含ExceptionEvent的事件集。现有ExceptionRequests的集合由EventRequestManager管理
自1.3版本起:
1.3
参见:
  • Method Details

    • exception

      ReferenceType exception()
      返回请求异常事件的异常类型。
      返回:
      使用EventRequestManager.createExceptionRequest(com.sun.jdi.ReferenceType, boolean, boolean)请求的异常(及其子类),如果默认情况下请求所有异常,则返回null。
    • notifyCaught

      boolean notifyCaught()
      返回请求类型的捕获异常在抛出时是否会生成事件。

      请注意,在抛出异常时,通常无法确定它是否真正被捕获。有关详细信息,请参见ExceptionEvent.catchLocation()。

      返回:
      如果捕获的异常将被报告,则返回true,否则返回false。
    • notifyUncaught

      boolean notifyUncaught()
      返回请求类型的未捕获异常在抛出时是否会生成事件。

      请注意,在抛出异常时,通常无法确定它是否真正未被捕获。有关详细信息,请参见ExceptionEvent.catchLocation()。

      返回:
      如果捕获的异常将被报告,则返回true,否则返回false。
    • addThreadFilter

      void addThreadFilter(ThreadReference thread)
      限制此请求生成的事件仅限于给定线程中的事件。
      参数:
      thread - 要过滤的线程。
      抛出:
      InvalidRequestStateException - 如果此请求当前已启用或已删除。只能向已禁用的请求添加过滤器。
    • addClassFilter

      void addClassFilter(ReferenceType refType)
      限制此请求生成的事件仅限于其位置位于给定引用类型或其任何子类型中的事件。将为可以安全转换为给定引用类型的引用类型中的任何位置生成事件。
      参数:
      refType - 要过滤的引用类型。
      抛出:
      InvalidRequestStateException - 如果此请求当前已启用或已删除。只能向已禁用的请求添加过滤器。
    • addClassFilter

      void addClassFilter(String classPattern)
      限制此请求生成的事件仅限于其位置位于类中的事件,该类的名称与受限制的正则表达式匹配。正则表达式仅限于精确匹配和以'*'开头或以'*'结尾的模式;例如,"*.Foo"或"java.*"。
      参数:
      classPattern - 要过滤的模式字符串。
      抛出:
      InvalidRequestStateException - 如果此请求当前已启用或已删除。只能向已禁用的请求添加过滤器。
    • addClassExclusionFilter

      void addClassExclusionFilter(String classPattern)
      限制此请求生成的事件仅限于其位置位于类中的事件,该类的名称与受限制的正则表达式不匹配。正则表达式仅限于精确匹配和以'*'开头或以'*'结尾的模式;例如,"*.Foo"或"java.*"。
      参数:
      classPattern - 要过滤的模式字符串。
      抛出:
      InvalidRequestStateException - 如果此请求当前已启用或已删除。只能向已禁用的请求添加过滤器。
    • addInstanceFilter

      void addInstanceFilter(ObjectReference instance)
      限制此请求生成的事件仅限于当前执行实例("this")是指定对象的事件。

      并非所有目标都支持此操作。使用VirtualMachine.canUseInstanceFilters()确定是否支持该操作。

      参数:
      instance - 必须是当前实例才能通过此过滤器的对象。
      抛出:
      UnsupportedOperationException - 如果目标虚拟机不支持此操作。
      InvalidRequestStateException - 如果此请求当前已启用或已删除。只能向已禁用的请求添加过滤器。
      自1.4版本起:
      1.4