web-dev-qa-db-fra.com

Java - Throwable to Exception

J'utilise actuellement le framework play2.

J'ai plusieurs classes qui lancent exceptions mais le gestionnaire play2s global onError utilise throwable au lieu d'une exception.

par exemple, une de mes classes lance un NoSessionException. Puis-je vérifier un objet jetable s'il s'agit d'un NoSessionException?

30
Maik Klein

Vous pouvez utiliser instanceof pour vérifier qu'il s'agit bien de NoSessionException ou non.

Exemple:

if (exp instanceof NoSessionException) {
...
}

En supposant que exp est la référence Throwable.

30
kosa

Soyez bref. Nous pouvons passer Throwable au constructeur Exception.

 @Override
 public void onError(Throwable e) {
    Exception ex = new Exception(e);
 }               

Voir ceci Exception d'Android

30
THANN Phearum

Puis-je vérifier un objet jetable s'il s'agit d'une NoSessionException?

Sûr:

Throwable t = ...;
if (t instanceof NoSessionException) {
    ...
    // If you need to use information in the exception
    // you can cast it in here
}
8
Jon Skeet

En plus de vérifier si c'est un instanceof, vous pouvez utiliser la fonction try catch et catch NoSessionException

try {
    // Something that throws a throwable
} catch (NoSessionException e) {
    // Its a NoSessionException 
} catch (Throwable t) {
    // catch all other Throwables
}
3
km1

Throwable est une classe qui Exception - et par conséquent toutes ses sous-classes - sous-classes. Rien ne vous empêche d'utiliser instanceof sur un Throwable.

2
Matt Ball