1 9 package com.vladium.util.exception; 10 11 import java.io.IOException ; 12 import java.io.ObjectOutputStream ; 13 import java.io.PrintStream ; 14 import java.io.PrintWriter ; 15 16 88 public 89 abstract class AbstractException extends Exception implements ICodedException, IThrowableWrapper 90 { 91 93 96 public AbstractException () 97 { 98 m_cause = null; 99 m_arguments = null; 100 } 101 102 107 public AbstractException (final String message) 108 { 109 super (message); 110 m_cause = null; 111 m_arguments = null; 112 } 113 114 122 public AbstractException (final String message, final Object [] arguments) 123 { 124 super (message); 125 m_cause = null; 126 m_arguments = arguments == null ? null : (Object []) arguments.clone (); 127 } 128 129 134 public AbstractException (final Throwable cause) 135 { 136 super (); 137 m_cause = cause; 138 m_arguments = null; 139 } 140 141 147 public AbstractException (final String message, final Throwable cause) 148 { 149 super (message); 150 m_cause = cause; 151 m_arguments = null; 152 } 153 154 163 public AbstractException (final String message, final Object [] arguments, final Throwable cause) 164 { 165 super (message); 166 m_cause = cause; 167 m_arguments = arguments == null ? null : (Object []) arguments.clone (); 168 } 169 170 171 181 public final String getMessage () 182 { 183 if (m_message == null) { 185 String msg; 186 final String supermsg = super.getMessage (); 187 final Class _class = getClass (); 188 189 if (m_arguments == null) 190 { 191 msg = ExceptionCommon.getMessage (_class, supermsg); 192 } 193 else 194 { 195 msg = ExceptionCommon.getMessage (_class, supermsg, m_arguments); 196 } 197 198 if (msg == null) 199 { 200 final String className = _class.getName (); 202 203 msg = (supermsg != null) ? (className + ": " + supermsg) : className; 204 } 205 206 m_message = msg; 207 } 208 209 return m_message; 210 } 211 212 217 public final String getLocalizedMessage () 218 { 219 return getMessage (); 222 } 223 224 230 public final void printStackTrace () 231 { 232 ExceptionCommon.printStackTrace (this, System.out); 234 } 235 236 241 public final void printStackTrace (final PrintStream s) 242 { 243 ExceptionCommon.printStackTrace (this, s); 244 } 245 246 251 public final void printStackTrace (final PrintWriter s) 252 { 253 ExceptionCommon.printStackTrace (this, s); 254 } 255 256 258 264 public final String getErrorCode () 265 { 266 return super.getMessage (); 267 } 268 269 271 275 public final Throwable getCause () 276 { 277 return m_cause; 278 } 279 280 public void __printStackTrace (final PrintStream ps) 281 { 282 super.printStackTrace (ps); 283 } 284 285 public void __printStackTrace (final PrintWriter pw) 286 { 287 super.printStackTrace (pw); 288 } 289 290 295 public static void addExceptionResource (final Class namespace, 296 final String messageResourceBundleName) 297 { 298 ExceptionCommon.addExceptionResource (namespace, messageResourceBundleName); 302 } 303 304 306 308 310 311 315 private void writeObject (final ObjectOutputStream out) 316 throws IOException 317 { 318 getMessage (); out.defaultWriteObject (); 320 } 321 322 323 private String m_message; private transient final Object [] m_arguments; 325 private final Throwable m_cause; 327 328 } | Popular Tags |