Subversion Repositories general

Compare Revisions

Ignore whitespace Rev 1267 → Rev 1268

/contrib/metadata-extractor/trunk/src/com/drew/lang/CompoundException.java
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();
}
}
}