Java – 可以抛出exception

我目前正在使用play2框架。

我有几个类抛出exceptions但play2s全局onError处理程序使用throwable而不是exception。

例如,我的一个类是抛出NoSessionException 。 如果它是NoSessionException我可以检查throwable对象吗?

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

例:

 if (exp instanceof NoSessionException) { ... } 

假设expThrowable引用。

只需缩短即可。 我们可以将Throwable传递给Exception构造函数。

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

从Android查看此例外

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

当然:

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

除了检查它的instanceof是否可以使用try catch并捕获NoSessionException

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

Throwable是一个Exception – 因此它的所有子类 – 子类。 没有什么可以阻止你在Throwable上使用instanceof