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
?
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
.
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
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
}
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
}
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
.