Presentation is loading. Please wait.

Presentation is loading. Please wait.

独習Java ・ 8.1  例外処理 ・ 8.2  catch ブロックの検索  12月 5日    小笠原 一恵.

Similar presentations


Presentation on theme: "独習Java ・ 8.1  例外処理 ・ 8.2  catch ブロックの検索  12月 5日    小笠原 一恵."— Presentation transcript:

1 独習Java ・ 8.1  例外処理 ・ 8.2  catch ブロックの検索  12月 5日    小笠原 一恵

2 例 外 プログラムの実行中に発生した問題を通知するために、実行時に生成されるオブジェクトのこと 原 因 ・ 整数を0で除算した
・ 整数を0で除算した ・ ファイルが見つからない ・ 数値の形式が不正である        etc.

3 例外(整数を0で除算) class error1{ public static void main(String args[]){ a(); } static void a(){ b(); static void b(){ int i=1; int j=0; System.out.println(i/j); }  出力結果 Exception in thread "main" java.lang.ArithmeticException: / by zero at error1.b(error1.java:9) at error1.a(error1.java:5) at error1.main(error1.java:3)

4 8.1 例外処理 try ブロック catch ブロック finally ブロック 例外の発生を監視する必要があるコード
8.1 例外処理    try{        // tryブロック      }    catch (ExceptionType1 parm1){        // 例外処理ブロック            ・     catch (ExceptionTypeN parmN){       }      finally{         //finallyブロック try ブロック 例外の発生を監視する必要があるコード catch ブロック 例外オブジェクトの種類がcatchブロックパのラメータと一致した場合はその処理を実行 一致しなければ次のcatch節へ finally ブロック Catchブロックの処理が終了したら実行

5 例外処理 catch(ArrayIndexOutOfBoundsException e){
System.out.println("ArrayIndexOutOfBoundsException"); } catch(NumberFormatException e){ System.out.println("NumberFormatException"); finally{ System.out.println("Finally block"); class Divider{ public static void main(String args[]){ try{ int i=Integer.parseInt(args[0]); int j=Integer.parseInt(args[1]); System.out.println(i/j); } catch(ArithmeticException e){ System.out.println("ArithmeticException");

6 8.2 catch ブロックの検索 例外オブジェクトに対応するcatchブロックがない場合
→ 他のtryブロックのcatchブロックが検索される   → 既定の例外ハンドラが呼び出されて、例外メッセージが      表示されてプログラムの実行が停止する

7 宿題 P244の練習問題の1.のプログラムを作り、catchブロックの検索がどのように行なわれているかを理解してください


Download ppt "独習Java ・ 8.1  例外処理 ・ 8.2  catch ブロックの検索  12月 5日    小笠原 一恵."

Similar presentations


Ads by Google