PowerPoint プレゼンテーション - NIPPON INSTITUTE of

アルゴリズムとデータ構
造演習(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