Java - Throwable to Exception
Java - Throwable to Exception
I am currently using the play2 framework.
I have several classes which are throwing exceptions but play2s global onError handler uses throwable instead of an exception.
exceptions
onError
for example one of my classes is throwing a NoSessionException. Can I check a throwable object if it is a NoSessionException ?
NoSessionException
NoSessionException
catch
thank you all for the fast answer.
– Maik Klein
Sep 10 '12 at 20:48
Of course, you can also catch specifically NoSessionException, and then pass it to an interface that expects a Throwable -- since Throwable is the superclass the interface will accept NoSessionException.
– Hot Licks
Sep 10 '12 at 20:50
(And if you do catch all Throwables, you shouldn't simply ignore the ones you don't select, but rather you should re-throw them.)
– Hot Licks
Sep 10 '12 at 20:56
5 Answers
5
You can use instanceof to check it is of NoSessionException or not.
instanceof
NoSessionException
Example:
if (exp instanceof NoSessionException) {
...
}
Assuming exp is the Throwable reference.
exp
Throwable
Just make it short. We can pass Throwable to Exception constructor.
Throwable
Exception
@Override
public void onError(Throwable e) {
Exception ex = new Exception(e);
}
See this Exception from Android
This solved my problem.
– Naveed Ahmad
Jan 26 '17 at 7:22
@NaveedAhmad cool!
– THANN Phearum
Jan 26 '17 at 7:26
Stack trace data is lost doing this however :-(
– Brian Knoblauch
Feb 8 at 19:03
@BrianKnoblauch Android also provide another constructor to keep the StackTrace. Exception (String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace)
– THANN Phearum
Mar 27 at 14:39
Can I check a throwable object if it is a NoSessionException ?
Sure:
Throwable t = ...;
if (t instanceof NoSessionException) {
...
// If you need to use information in the exception
// you can cast it in here
}
In addition to checking if its an instanceof you can use the try catch and catch NoSessionException
instanceof
try {
// Something that throws a throwable
} catch (NoSessionException e) {
// Its a NoSessionException
} catch (Throwable t) {
// catch all other Throwables
}
Throwable is a class which Exception – and consequently all subclasses thereof – subclasses. There's nothing stopping you from using instanceof on a Throwable.
Throwable
Exception
instanceof
Throwable
By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.
Throwable is the superclass of all exceptions. You can
catcha throwable and then interrogate its class to see if it's a NoSessionException or whatever.– Hot Licks
Sep 10 '12 at 20:47