0,0 → 1,89 |
/* |
* This is public domain software - that is, you can do whatever you want |
* with it, and include it software that is licensed under the GNU or the |
* BSD license, or whatever other licence you choose, including proprietary |
* closed source licenses. I do ask that you leave this header in tact. |
* |
* If you make modifications to this code that you think would benefit the |
* wider community, please send me a copy and I'll post it on my site. |
* |
* If you make use of this code, I'd appreciate hearing about it. |
* drew@drewnoakes.com |
* Latest version of this software kept at |
* http://drewnoakes.com/ |
*/ |
package com.drew.lang; |
|
import java.io.PrintStream; |
import java.io.PrintWriter; |
|
/** |
* Represents a compound exception, as modelled in JDK 1.4, but |
* unavailable in previous versions. This class allows support |
* of these previous JDK versions. |
*/ |
public class CompoundException extends Exception |
{ |
private final Throwable _innnerException; |
|
public CompoundException(String msg) |
{ |
this(msg, null); |
} |
|
public CompoundException(Throwable exception) |
{ |
this(null, exception); |
} |
|
public CompoundException(String msg, Throwable innerException) |
{ |
super(msg); |
_innnerException = innerException; |
} |
|
public Throwable getInnerException() |
{ |
return _innnerException; |
} |
|
public String toString() |
{ |
StringBuffer sbuffer = new StringBuffer(); |
sbuffer.append(super.toString()); |
if (_innnerException != null) { |
sbuffer.append("\n"); |
sbuffer.append("--- inner exception ---"); |
sbuffer.append("\n"); |
sbuffer.append(_innnerException.toString()); |
} |
return sbuffer.toString(); |
} |
|
public void printStackTrace(PrintStream s) |
{ |
super.printStackTrace(s); |
if (_innnerException != null) { |
s.println("--- inner exception ---"); |
_innnerException.printStackTrace(s); |
} |
} |
|
public void printStackTrace(PrintWriter s) |
{ |
super.printStackTrace(s); |
if (_innnerException != null) { |
s.println("--- inner exception ---"); |
_innnerException.printStackTrace(s); |
} |
} |
|
public void printStackTrace() |
{ |
super.printStackTrace(); |
if (_innnerException != null) { |
System.err.println("--- inner exception ---"); |
_innnerException.printStackTrace(); |
} |
} |
} |