|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.cojen.util.ThrowUnchecked
public abstract class ThrowUnchecked
Allows exceptions to be thrown which aren't declared to be thrown. Use of this technique can cause confusion since it violates the Java language rules for undeclared checked exceptions. For this reason, this class should not be used except under special circumstances such as to work around compiler bugs. An exception can be made, if calling any of the fireDeclared methods and the set of declared types matches what the caller is allowed to throw.
Example:
public <E extends Throwable> void someMethod(E exception) throws E {
...
// Apparent compiler bug sometimes disallows this. Doesn't appear to
// show up when compiling source files individually.
//throw exception;
// Throw it this way instead, and compiler doesn't know.
ThrowUnchecked.fire(exception);
}
| Constructor Summary | |
|---|---|
protected |
ThrowUnchecked()
|
| Method Summary | |
|---|---|
protected abstract void |
doFire(Throwable t)
|
static void |
fire(Throwable t)
Throws the given exception, even though it may be checked. |
static void |
fireCause(Throwable t)
Throws the cause of the given exception, even though it may be checked. |
static void |
fireDeclared(Throwable t,
Class... declaredTypes)
Throws the given exception if it is unchecked or an instance of any of the given declared types. |
static void |
fireDeclaredCause(Throwable t,
Class... declaredTypes)
Throws the cause of the given exception if it is unchecked or an instance of any of the given declared types. |
static void |
fireDeclaredRootCause(Throwable t,
Class... declaredTypes)
Throws the root cause of the given exception if it is unchecked or an instance of any of the given declared types. |
static void |
fireFirstDeclared(Throwable t,
Class... declaredTypes)
Throws the either the original exception or the first found cause if it matches one of the given declared types or is unchecked. |
static void |
fireFirstDeclaredCause(Throwable t,
Class... declaredTypes)
Throws the first found cause that matches one of the given declared types or is unchecked. |
static void |
fireRootCause(Throwable t)
Throws the root cause of the given exception, even though it may be checked. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
protected ThrowUnchecked()
| Method Detail |
|---|
public static void fire(Throwable t)
t - exception to throw
public static void fireDeclared(Throwable t,
Class... declaredTypes)
t - exception to throwdeclaredTypes - if exception is checked and is not an instance of
any of these types, then it is thrown as an
UndeclaredThrowableException.
public static void fireFirstDeclared(Throwable t,
Class... declaredTypes)
t - exception whose cause is to be throwndeclaredTypes - if exception is checked and is not an instance of
any of these types, then it is thrown as an
UndeclaredThrowableException.public static void fireCause(Throwable t)
t - exception whose cause is to be thrown
public static void fireDeclaredCause(Throwable t,
Class... declaredTypes)
t - exception whose cause is to be throwndeclaredTypes - if exception is checked and is not an instance of
any of these types, then it is thrown as an
UndeclaredThrowableException.
public static void fireFirstDeclaredCause(Throwable t,
Class... declaredTypes)
t - exception whose cause is to be throwndeclaredTypes - if exception is checked and is not an instance of
any of these types, then it is thrown as an
UndeclaredThrowableException.public static void fireRootCause(Throwable t)
t - exception whose root cause is to be thrown
public static void fireDeclaredRootCause(Throwable t,
Class... declaredTypes)
t - exception whose root cause is to be throwndeclaredTypes - if exception is checked and is not an instance of
any of these types, then it is thrown as an
UndeclaredThrowableException.protected abstract void doFire(Throwable t)
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||