クラウドで 伸びる人沈む人 |
|
|
|
try、catch、finallyの理解3
<IT技術の処方箋:try、catch、finallyの理解3> エラーを吐く可能性のある場合は、 try、catch、finallを使います。 「try、catch、finallyの理解2」でエラー対応のプログラムをみました。↓ http://www.searchman.info/tips/2150.html では、これらのエラーをもっと細かに処理したい場合はどうするのでしょうか。 以下の場合、ゼロ割の場合、数字以外が入ってきた場合の2パターンを考えてみましょう。 ●例でみましょう。 class Abc { public static void main (String[] args) { try { int x = Integer.parseInt(args[0]); //(1) System.out.println("10/" + x + "=" + (10/x)); } catch(ArithmeticException e) { System.out.println("ゼロ割" + e.getMessage()); } catch(NumberFormatException e) { System.out.println("数字以外" + e.getMessage()); } finally { System.out.println("This program was finished"); //(3) } } } ●実行してみます。以下のように、ゼロ割や数字以外のエラーをキャッチしています。 C:\java>java Abc 0 ゼロ割/ by zero This program was finished C:\java>java Abc e 数字以外For input string: "e" This program was finished C:\java>java Abc 5 10/5=2 This program was finished ●ここで注意したいのは、ArithmeticExceptionやNumberFormatExceptionのような クラスをどうやってみるけるか?ということですね。 それは、もちろんJavaDocですかねえ。こちらを参考にしてください。 http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html ※---try,catch,finallyは、こちらから理解しよう。---※ 1番目:try、catch、finallyの理解1「例外処理の概念」 http://www.searchman.info/tips/2140.html 2番目:try、catch、finallyの理解2「例外処理の基本」 http://www.searchman.info/tips/2150.html 3番目:try、catch、finallyの理解3「例外処理を詳細に」 http://www.searchman.info/tips/2160.html |