
com.tangosol.util.CheckedWrapperException Maven / Gradle / Ivy
/*
* Copyright (c) 2000, 2020, Oracle and/or its affiliates.
*
* Licensed under the Universal Permissive License v 1.0 as shown at
* http://oss.oracle.com/licenses/upl.
*/
package com.tangosol.util;
import java.io.PrintStream;
import java.io.PrintWriter;
/**
* A CheckedWrapperException wraps a Throwable object as a checked Exception.
*
* @see WrapperException
*
* @author cp 2000.08.03
*/
public class CheckedWrapperException
extends Exception
{
// ----- constructors
/**
* Construct a CheckedWrapperException from a Throwable object and
* an additional description.
*
* @param e the Throwable object
* @param s the additional description
*/
public CheckedWrapperException(Throwable e, String s)
{
super(s);
m_e = e;
}
/**
* Construct a CheckedWrapperException from a Throwable object.
*
* @param e the Throwable object
*/
public CheckedWrapperException(Throwable e)
{
this(e, null);
}
/**
* Construct a CheckedWrapperException with a specified detail message.
*
* @param s the String that contains a detailed message
*/
public CheckedWrapperException(String s)
{
this(null, s);
}
/**
* Construct a CheckedWrapperException.
*/
protected CheckedWrapperException()
{
this(null, null);
}
// ----- accessors ------------------------------------------------------
/**
* @return the original (wrapped) exception.
*/
public Throwable getOriginalException()
{
return m_e;
}
/**
* @return a String that shows the original exception was wrapped
*/
public String getWrapper()
{
String s = super.getMessage();
if (s == null)
{
return "(Wrapped) ";
}
else
{
return "(Wrapped: " + s + ") ";
}
}
// ----- Throwable methods ----------------------------------------------
/**
* Returns the error message string of this CheckedWrapperException object.
*
* @return the error message string of this CheckedWrapperException
*/
public String getMessage()
{
String sMsgThis = super.getMessage();
String sMsgWrap = m_e == null ? "" : getWrapper() + m_e.getMessage();
return sMsgThis == null ? sMsgWrap : sMsgThis + ' ' + sMsgWrap;
}
/**
* Creates a localized description of this Throwable
.
* Subclasses may override this method in order to produce a
* locale-specific message. For subclasses that do not override this
* method, the default implementation returns the same result as
* getMessage()
.
*
* @return The localized description of this Throwable
.
*/
public String getLocalizedMessage()
{
String sMsgThis = super.getLocalizedMessage();
String sMsgWrap = m_e == null ? "" : getWrapper() + m_e.getLocalizedMessage();
return sMsgThis == null ? sMsgWrap : sMsgThis + ' ' + sMsgWrap;
}
/**
* Returns a short description of this CheckedWrapperException object.
*
* @return a string representation of this Throwable
.
*/
public String toString()
{
String sMsgThis = super.toString();
String sMsgWrap = m_e == null ? "" : getWrapper() + m_e.toString();
return sMsgThis + ' ' + sMsgWrap;
}
/**
* Prints this CheckedWrapperException
and its backtrace to the
* standard error stream.
*/
public void printStackTrace()
{
if (m_e == null)
{
super.printStackTrace();
}
else
{
synchronized (System.err)
{
System.err.print(getWrapper());
m_e.printStackTrace();
}
}
}
/**
* Prints this Throwable
and its backtrace to the
* specified print stream.
*
* @param stream PrintStream
to use for output
*/
public void printStackTrace(PrintStream stream)
{
if (m_e == null)
{
super.printStackTrace(stream);
}
else
{
synchronized (stream)
{
stream.print(getWrapper());
m_e.printStackTrace(stream);
}
}
}
/**
* Prints this Throwable
and its backtrace to the specified
* print writer.
*
* @param writer PrintWriter
to use for output
*/
public void printStackTrace(PrintWriter writer)
{
if (m_e == null)
{
super.printStackTrace(writer);
}
else
{
synchronized (writer)
{
writer.print(getWrapper());
m_e.printStackTrace(writer);
}
}
}
// ----- data members ---------------------------------------------------
/**
* The wrapped Throwable object.
*/
private Throwable m_e;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy