View Javadoc

1   /***
2    * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
3    */
4   package net.sourceforge.pmd;
5   
6   import java.io.PrintStream;
7   import java.io.PrintWriter;
8   
9   /***
10   * A convenience exception wrapper.  Contains the original exception, if any.  Also, contains
11   * a severity number (int).  Zero implies no severity.  The higher the number the greater the
12   * severity.
13   *
14   * @author Donald A. Leckie
15   * @version $Revision: 1.6 $, $Date: 2006/02/10 14:15:23 $
16   * @since August 30, 2002
17   */
18  public class PMDException extends Exception {
19  
20      private Exception reason;
21      private int severity;
22  
23      public PMDException(String message) {
24          super(message);
25      }
26  
27      public PMDException(String message, Exception reason) {
28          super(message);
29          this.reason = reason;
30      }
31  
32      public void printStackTrace() {
33          printStackTrace(System.err);
34      }
35  
36      public void printStackTrace(PrintStream s) {
37          super.printStackTrace(s);
38          if (this.reason != null) {
39              s.print("Caused by: ");
40              this.reason.printStackTrace(s);
41          }
42      }
43  
44      public void printStackTrace(PrintWriter s) {
45          super.printStackTrace(s);
46          if (this.reason != null) {
47              s.print("Caused by: ");
48              this.reason.printStackTrace(s);
49          }
50      }
51  
52      public Exception getReason() {
53          return reason;
54      }
55  
56      public void setSeverity(int severity) {
57          this.severity = severity;
58      }
59  
60      public int getSeverity() {
61          return severity;
62      }
63  }