web-dev-qa-db-ja.com

Java-例外にスロー可能

現在、play2フレームワークを使用しています。

exceptionsをスローするクラスがいくつかありますが、play2sグローバルonErrorハンドラーは例外の代わりにスロー可能オブジェクトを使用しています。

たとえば、私のクラスの1つがNoSessionExceptionをスローしています。スロー可能なオブジェクトがNoSessionExceptionであるかどうかを確認できますか?

30
Maik Klein

instanceofを使用して、それがNoSessionExceptionであるかどうかを確認できます。

例:

if (exp instanceof NoSessionException) {
...
}

expThrowable参照であると仮定します。

30
kosa

短くしてください。 ThrowableExceptionコンストラクタに渡すことができます。

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

これを見てください 例外 Androidから

30
THANN Phearum

NoSessionExceptionの場合、スロー可能なオブジェクトをチェックできますか?

承知しました:

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

instanceofかどうかを確認することに加えて、try catchおよびcatch NoSessionExceptionを使用できます。

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

Throwable は、Exception –そしてその結果、そのすべてのサブクラス–サブクラスになるクラスです。 instanceofでのThrowableの使用を妨げるものは何もありません。

2
Matt Ball