契約における例外の扱い
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/28 09:17 UTC 版)
「契約プログラミング」の記事における「契約における例外の扱い」の解説
メソッドの表明違反(事前条件、事後条件、不変条件のいずれかを満たさない状況)が生じた際や、OSが異常を検出した際には、それらを例外として処理しなければならない。 例外処理はメソッドを失敗させるか成功させるかいずれかの形で行わなれなければならない。 メソッドを成功させる場合、定義より、不変条件を含むメソッドの事後条件を満たして呼び出し元に制御を返す必要がある。 失敗させる場合、システムの状態をメソッド実行前の状態に戻し、クライアントへ例外の発生を伝えなければならない。例えばデータベース(DB)のトランザクションでエラーが生じた場合、サプライヤはトランザクションを巻き戻した上で DB 操作の失敗をクライアントに伝える必要がある。 メソッド内で定義された例外ハンドラでは、メソッド本体の実行を再開するか、クライアントへ例外を通知して終了するかのいずれかを行う。例外ハンドラからクライアントへ制御を戻す場合、クラスの不変条件に違反してはならない。 契約プログラミングにおいて、形式的には、数値計算におけるオーバーフローやゼロ除算や、メモリ領域の確保失敗、ファイルへのアクセスや書き込みの失敗などは、システムとクライアントとの間の暗黙の契約違反と見なせる。
※この「契約における例外の扱い」の解説は、「契約プログラミング」の解説の一部です。
「契約における例外の扱い」を含む「契約プログラミング」の記事については、「契約プログラミング」の概要を参照ください。
- 契約における例外の扱いのページへのリンク