| GateException.java |
1 /*
2 * GateException.java
3 *
4 * Copyright (c) 1998-2005, The University of Sheffield.
5 *
6 * This file is part of GATE (see http://gate.ac.uk/), and is free
7 * software, licenced under the GNU Library General Public License,
8 * Version 2, June 1991 (in the distribution as file licence.html,
9 * and also available at http://gate.ac.uk/gate/licence.html).
10 *
11 * Hamish Cunningham, 19/01/2000
12 *
13 * $Id: GateException.java,v 1.12 2005/02/14 14:50:16 valyt Exp $
14 */
15
16 package gate.util;
17
18 import java.io.PrintStream;
19 import java.io.PrintWriter;
20
21 /** A superclass for exceptions in the GATE packages. Can be used
22 * to catch any internal exception thrown by the GATE libraries.
23 * (Of course
24 * other types of exception may be thrown, but these will be from other
25 * sources such as the Java core API.)
26 */
27 public class GateException extends Exception {
28
29 /** Debug flag */
30 private static final boolean DEBUG = false;
31
32 protected Throwable e;
33
34 public GateException() {
35 super();
36 }
37
38 public GateException(String s) {
39 super(s);
40 }
41
42 public GateException(Throwable e) {
43 super(e.toString());
44 this.e = e;
45 }
46
47 public GateException(String message, Throwable e) {
48 super(message);
49 this.e = e;
50 }
51
52
53 /**
54 * Overridden so we can print the enclosed exception's stack trace too.
55 */
56 public void printStackTrace(){
57 printStackTrace(System.err);
58 }
59
60 /**
61 * Overridden so we can print the enclosed exception's stack trace too.
62 */
63 public void printStackTrace(PrintStream s) {
64 s.flush();
65 super.printStackTrace(s);
66 if(e != null){
67 s.print(" Caused by:\n");
68 e.printStackTrace(s);
69 }
70 }
71
72 /**
73 * Overridden so we can print the enclosed exception's stack trace too.
74 */
75 public void printStackTrace(PrintWriter s) {
76 s.flush();
77 super.printStackTrace(s);
78 if(e != null){
79 s.print(" Caused by:\n");
80 e.printStackTrace(s);
81 }
82 }
83
84 } // GateException
85