package com.sun.jdi.request;

/*
 * (c) Copyright IBM Corp. 2000, 2001.
 * All Rights Reserved.
 */

import com.sun.jdi.ObjectReference;
import com.sun.jdi.ReferenceType;
import com.sun.jdi.ThreadReference;

public interface ExceptionRequest extends EventRequest {
	public void addClassExclusionFilter(String arg1);
   	public void addClassFilter(ReferenceType arg1);
	public void addClassFilter(String arg1);
	public void addThreadFilter(ThreadReference arg1);
	public ReferenceType exception();
	public boolean notifyCaught();
	public boolean notifyUncaught();
	public void addInstanceFilter(ObjectReference instance);
}
