42

我目前正在使用 play2 框架。

我有几个正在抛出的类,exceptions但 play2s 全局onError处理程序使用 throwable 而不是异常。

例如,我的一门课是扔一个NoSessionException. 我可以检查一个可抛出的对象,如果它是一个NoSessionException

4

5 回答 5

47

您可以使用instanceof它来检查它是否属于NoSessionException

例子:

if (exp instanceof NoSessionException) {
...
}

假设expThrowable参考。

于 2012-09-10T20:46:43.283 回答
47

只是让它简短。我们可以传递ThrowableException构造函数。

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

从 Android 中查看此异常

于 2017-01-12T07:43:54.263 回答
15

如果它是 NoSessionException ,我可以检查可抛出对象吗?

当然:

Throwable t = ...;
if (t instanceof NoSessionException) {
    ...
    // If you need to use information in the exception
    // you can cast it in here
}
于 2012-09-10T20:46:22.070 回答
6

Throwable是一个类,Exception因此它的所有子类都是子类。没有什么能阻止你instanceofThrowable.

于 2012-09-10T20:46:45.827 回答
6

除了检查它是否是一个instanceof你可以使用 try catch 和 catch NoSessionException

try {
    // Something that throws a throwable
} catch (NoSessionException e) {
    // Its a NoSessionException 
} catch (Throwable t) {
    // catch all other Throwables
}
于 2012-09-10T20:51:28.040 回答