1 /* 2 * CDDL HEADER START 3 * 4 * The contents of this file are subject to the terms of the 5 * Common Development and Distribution License (the "License"). 6 * You may not use this file except in compliance with the License. 7 * 8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 9 * or http://www.opensolaris.org/os/licensing. 10 * See the License for the specific language governing permissions 11 * and limitations under the License. 12 * 13 * When distributing Covered Code, include this CDDL HEADER in each 14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 15 * If applicable, add the following below this CDDL HEADER, with the 16 * fields enclosed by brackets "[]" replaced with your own identifying 17 * information: Portions Copyright [yyyy] [name of copyright owner] 18 * 19 * CDDL HEADER END 20 */ 21 22 /* 23 * Copyright 2006 Sun Microsystems, Inc. All rights reserved. 24 * Use is subject to license terms. 25 * 26 * ident "%Z%%M% %I% %E% SMI" 27 */ 28 package org.opensolaris.os.dtrace; 29 30 /** 31 * User-defined application behavior after an exception terminates 32 * a running DTrace consumer. The {@link Consumer} that threw the 33 * exception is stopped automatically whether or not an {@code 34 * ExceptionHandler} is set, but a handler must be set to do anything 35 * other than print a stack trace to {@code stderr}. 36 * 37 * @see Consumer#go(ExceptionHandler handler) 38 * 39 * @author Tom Erickson 40 */ 41 public interface ExceptionHandler { 42 /** 43 * Defines what to do after an exception terminates a running {@link 44 * Consumer}. For example, a handler might be implemented to 45 * display details about what went wrong. 46 * 47 * @param e a {@link DTraceException} if encountered in the native 48 * DTrace library, a {@link ConsumerException} if thrown from a 49 * {@link ConsumerListener} method to terminate the consumer, or a 50 * {@link RuntimeException} to indicate an unexpected error in the 51 * Java DTrace API. 52 */ handleException(Throwable e)53 public void handleException(Throwable e); 54 } 55