例外をcatchした後でif文を使って内容をチェックし、 目的外の例外オブジェクトだったら再びthrowする方法もあるが、 条件付きcatchを使用することで、もっと簡潔に記述できる。
1. 実行するスクリプト(catch-if.js):
var stdout = java.lang.System.out;var fileName = "<no file>";try { new java.io.FileInputStream(fileName); // FileNotFoundException} catch (e if e.javaException instanceof java.io.FileNotFoundException) { stdout.println("file not found");}try { new java.lang.Class.forName(null); // NullPointerException} catch (e if e.javaException instanceof java.lang.ClassNotFoundException) { stdout.println("class not found");} catch (e) { stdout.println(e);}2-1. Rhino1.7で実行する:
>java -classpath .;js.jar org.mozilla.javascript.tools.shell.Main -w -debug catch-if.jsfile not foundJavaException: java.lang.NullPointerException: null2-2. jrunscript(Java1.7)で実行すると、結果はRhino1.7と同じ:
>jrunscript catch-if.jsfile not foundJavaException: java.lang.NullPointerException: null
0 件のコメント:
コメントを投稿