42

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

スローしているクラスがいくつかありますがexceptions、play2s グローバルonErrorハンドラーは例外ではなくスロー可能を使用します。

たとえば、私のクラスの1つがNoSessionException. スロー可能なオブジェクトが である場合、そのオブジェクトをチェックできますNoSessionExceptionか?

4

5 に答える 5

47

instanceofかどうかを確認するために使用できますNoSessionException

例:

if (exp instanceof NoSessionException) {
...
}

参考expになると思いThrowableます。

于 2012-09-10T20:46:43.283 に答える
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、その結果、そのすべてのサブクラスがサブクラスになります。instanceofでの使用を妨げるものは何もありませんThrowable

于 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 に答える