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 }