diff options
Diffstat (limited to 'libjava/java/lang/reflect/InvocationTargetException.java')
-rw-r--r-- | libjava/java/lang/reflect/InvocationTargetException.java | 139 |
1 files changed, 96 insertions, 43 deletions
diff --git a/libjava/java/lang/reflect/InvocationTargetException.java b/libjava/java/lang/reflect/InvocationTargetException.java index 0152a7bf2f5..4e04b42803e 100644 --- a/libjava/java/lang/reflect/InvocationTargetException.java +++ b/libjava/java/lang/reflect/InvocationTargetException.java @@ -1,75 +1,128 @@ -// InvocationTargetException.java - Wrapper exception for reflection. +/* InvocationTargetException.java - Wrapper exception for reflection + Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc. -/* Copyright (C) 1998, 1999, 2000 Free Software Foundation +This file is part of GNU Classpath. - This file is part of libgcj. - -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. +GNU Classpath 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 +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +02111-1307 USA. + +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. */ + + package java.lang.reflect; + import java.io.PrintStream; import java.io.PrintWriter; -/** - * @author Tom Tromey <tromey@cygnus.com> - * @date December 12, 1998 - */ /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 * "The Java Language Specification", ISBN 0-201-63451-1 * Status: Believed complete and correct. */ -public class InvocationTargetException extends Exception +/** + * InvocationTargetException is sort of a way to "wrap" whatever exception + * comes up when a method or constructor is called via Reflection. + * + * @author John Keiser + * @version 1.1.0, 31 May 1998 + * @author Tom Tromey <tromey@cygnus.com> + * @date December 12, 1998 + * + * @see Method#invoke(Object,Object[]) + * @see Constructor#newInstance(Object[]) + */ + +public class InvocationTargetException extends Exception { - public Throwable getTargetException () + static final long serialVersionUID = 4085088731926701167L; + + private Throwable target = null; + + protected InvocationTargetException() { - return target; + super(); } - - protected InvocationTargetException () + + /** + * Create an <code>InvocationTargetException</code> using another + * exception. + * @param targetException the exception to wrap + */ + public InvocationTargetException(Throwable targetException) { - super (); - target = null; + super(targetException.toString()); + target = targetException; } - - public InvocationTargetException (Throwable exception) + + /** + * Create an <code>InvocationTargetException</code> using another + * exception and an error message. + * + * @param targetException the exception to wrap + * @param err an extra reason for the exception-throwing + */ + public InvocationTargetException(Throwable targetException, String err) { - super (); - target = exception; + super(err); + target = targetException; } - - public InvocationTargetException (Throwable exception, String msg) + + /** + * Get the wrapped (targeted) exception. + * + * @return the targeted exception. + */ + public Throwable getTargetException() { - super (msg); - target = exception; + return target; } - // This is from JDK 1.2. - public void printStackTrace () + public void printStackTrace() { - if (target != null) + if (target == null) + super.printStackTrace(); + else + { + System.err.print(this.getClass() + ": "); target.printStackTrace(); + } } - // This is from JDK 1.2. - public void printStackTrace (PrintStream s) + public void printStackTrace(PrintStream ps) { - if (target != null) - target.printStackTrace(s); + if (target == null) + super.printStackTrace(ps); + else + { + ps.print(this.getClass() + ": "); + target.printStackTrace(ps); + } } - // This is from JDK 1.2. - public void printStackTrace (PrintWriter wr) + public void printStackTrace(PrintWriter pw) { - if (target != null) - target.printStackTrace(wr); + if (target == null) + super.printStackTrace(pw); + else + { + pw.print(this.getClass() + ": "); + target.printStackTrace(pw); + } } - - // The wrapped exception. The name is specified by the - // serialization spec. - private Throwable target; - - private static final long serialVersionUID = 4085088731926701167L; } |