Java - 可以抛出异常

Mai*_*ein 24 java exception throwable

我目前正在使用play2框架.

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

例如,我的一个班级正在抛出一个NoSessionException.如果它是一个可抛物体,我可以检查NoSessionException吗?

kos*_*osa 30

您可以使用instanceof它来检查它是否有效NoSessionException.

例:

if (exp instanceof NoSessionException) {
...
}
Run Code Online (Sandbox Code Playgroud)

假设expThrowable参考.


THA*_*rum 30

只需缩短即可.我们可以传递ThrowableException构造函数.

 @Override
 public void onError(Throwable e) {
    Exception ex = new Exception(e);
 }               
Run Code Online (Sandbox Code Playgroud)

从Android 查看此例外


Jon*_*eet 8

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

当然:

Throwable t = ...;
if (t instanceof NoSessionException) {
    ...
    // If you need to use information in the exception
    // you can cast it in here
}
Run Code Online (Sandbox Code Playgroud)


Mat*_*all 6

ThrowableException是\xe2\x80\x93 及其所有子类 \xe2\x80\x93 子类的类。没有什么可以阻止您instanceofThrowable.

\n


km1*_*km1 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
}
Run Code Online (Sandbox Code Playgroud)