diff options
Diffstat (limited to 'projects/net.wotonomy.foundation/src/main/java/net/wotonomy/foundation/internal/WotonomyException.java')
| -rw-r--r-- | projects/net.wotonomy.foundation/src/main/java/net/wotonomy/foundation/internal/WotonomyException.java | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/projects/net.wotonomy.foundation/src/main/java/net/wotonomy/foundation/internal/WotonomyException.java b/projects/net.wotonomy.foundation/src/main/java/net/wotonomy/foundation/internal/WotonomyException.java new file mode 100644 index 0000000..e2210d0 --- /dev/null +++ b/projects/net.wotonomy.foundation/src/main/java/net/wotonomy/foundation/internal/WotonomyException.java @@ -0,0 +1,134 @@ +/* +Wotonomy: OpenStep design patterns for pure Java applications. +Copyright (C) 2000 Michael Powers + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, see http://www.gnu.org +*/ + +package net.wotonomy.foundation.internal; + +import java.io.PrintStream; +import java.io.PrintWriter; + +/** +* This is a simple RuntimeException that can encapsulate +* another throwable. Behaves as a normal RuntimeException +* except that it prints a stack trace of the wrapped +* throwable if one is specified. +* +* Intended to be used anytime you'd +* report an exception with System.out.println: that is, +* for debugging and non-user-visible exceptions. +* +* @author michael@mpowers.net +* @author $Author: cgruber $ +* @version $Revision: 893 $ +*/ + +public class WotonomyException extends RuntimeException +{ + protected String message; + protected Throwable wrappedThrowable; + + /** + * Default constructor. + */ + public WotonomyException() + { + super(); + message = null; + wrappedThrowable = null; + } + + /** + * Standard constructor with message. + */ + public WotonomyException( String aMessage ) + { + super( aMessage ); + message = aMessage; + wrappedThrowable = null; + } + + /** + * Specifies a throwable to wrap. + */ + public WotonomyException( Throwable aThrowable ) + { + super(); + message = null; + wrappedThrowable = aThrowable; + } + + /** + * Specifies a message and a throwable to wrap. + */ + public WotonomyException( String aMessage, Throwable aThrowable ) + { + super( aMessage ); + message = aMessage; + wrappedThrowable = aThrowable; + } + + /** + * Returns the wrapped throwable. + */ + public Throwable getWrappedThrowable() + { + return wrappedThrowable; + } + + public void printStackTrace(PrintWriter s) + { + if ( message != null ) + { + s.println( "Exception: " + message ); + } + if ( wrappedThrowable != null ) + { + wrappedThrowable.printStackTrace( s ); + return; + } + super.printStackTrace( s ); + } + + public void printStackTrace(PrintStream s) + { + if ( message != null ) + { + s.println( "Exception: " + message ); + } + if ( wrappedThrowable != null ) + { + wrappedThrowable.printStackTrace( s ); + return; + } + super.printStackTrace( s ); + } + + public void printStackTrace() + { + if ( message != null ) + { + System.err.println( "Exception: " + message ); + } + if ( wrappedThrowable != null ) + { + wrappedThrowable.printStackTrace(); + return; + } + super.printStackTrace(); + } + +} |
