1 52 package com.go.trove.util; 53 54 import java.io.PrintStream ; 55 import java.io.PrintWriter ; 56 57 63 public class FilterException extends Exception { 64 65 private Throwable mRootCause; 66 67 public FilterException() { 68 super(); 69 mRootCause = null; 70 } 71 72 public FilterException(String message) { 73 super(message); 74 mRootCause = null; 75 } 76 77 protected FilterException(Throwable rootCause) { 78 super(rootCause.getMessage()); 79 mRootCause = rootCause; 80 } 81 82 protected FilterException(String message, Throwable rootCause) { 83 super(message); 84 mRootCause = rootCause; 85 } 86 87 public String getMessage() { 88 String result; 89 if (mRootCause != null) { 90 String msg = super.getMessage(); 91 if (msg != null) { 92 result = super.getMessage() + ": " + mRootCause.getMessage(); 93 } else { 94 result = mRootCause.getMessage(); 95 } 96 } else { 97 result = super.getMessage(); 98 } 99 return result; 100 } 101 102 public void printStackTrace() { 103 if (mRootCause != null) { 104 System.err.println("Root cause: "); 105 mRootCause.printStackTrace(); 106 } else { 107 super.printStackTrace(); 108 } 109 } 110 111 public void printStackTrace(PrintStream stream) { 112 if (mRootCause != null) { 113 stream.print("Root cause: "); 114 mRootCause.printStackTrace(stream); 115 } else { 116 super.printStackTrace(stream); 117 } 118 } 119 120 public void printStackTrace(PrintWriter writer) { 121 if (mRootCause != null) { 122 writer.print("Root cause: "); 123 mRootCause.printStackTrace(writer); 124 } else { 125 super.printStackTrace(writer); 126 } 127 } 128 129 public Throwable getRootCause() { 130 return mRootCause; 131 } 132 } 133 134 | Popular Tags |