アルゴリズムとデータ構 造演習(7月1日) 例外処理 2015/10/1 1 異常事態の発生!? そういうことは考えない。 Que sera, sera! 最悪 とりあえずプログラム終了。 使えない… 例外処理で処理する。 ベスト ファイルを閉じる。 デバイスを開放する。などなど… 2015/10/1 2 例外処理の方法 try { 異常事態が起きそうなコードを書く。 } catch (ExceptionType1 param1) { ExceptionType1の例外を処理する。 } catch (ExceptionType2 param2) { ExceptionType2の例外を処理する。 } finally { 必ず実行したい処理を書く。 } 2015/10/1 3 例外(Exception)の型 Exception ClassNotFoundException IllegalAccessException InstantiationException InterruptedException NoSuchFieldException NoSuchMethodException RuntimeException 2015/10/1 4 例外(RuntimeException)の型 RuntimeException ArrayIndexOutOfBoundsException ArithmeticException ClassCastException NegativeArraySizeException NullPointerException NumberFormatException SecurityException StringIndexOutOfBoundsException 2015/10/1 5 例外を投げる(かもしれない)関数 public static void aMethod() throw Exception { … throw new Exception(“エラーメッセージ”); … } 2015/10/1 6 例外を投げる(かもしれない)関数 public static void aMethod() throw Exception { … throw anObject; … } anObjectは、例外のサブクラスでなければならない 2015/10/1 7 例外を投げる(かもしれない)関数 public static void aMethod() throw Exceptiontype { … try { } catch (Exceptiontype param) { … throw param; … } 2015/10/1 8 例外を受け取れる関数 public static void main() { try { exceptionThrownableMethod(); } catch (Exception e) { System.err.println(e.getMessage()+”\n”); exception.printStackTrace(); 呼び出しの履歴を表示する。 } 2015/10/1 9 DivideByZeroTestプログラム Jframe ActionListener 多重継承 DivideByZeroTest ArithmeticException 例外クラスのサブクラス DivideByZeroException 2015/10/1 10
© Copyright 2025 ExpyDoc