400
Post/Edit Page
ある処理が想定外の事態に遭遇したとき、取りうる選択肢は次の4つしかない。1.少なくとも有効な内部状態であることを保証して次の処理へ遷移する。2.想定外の事態が発生する以前の状態にもどす。3.処理を中断して状況を告知し、続行・終了の判断機会を与える。4.破綻を告知せず、処理の内部で飲み込んでしまう。このような想定外に対する保証の度合を、処理の「例外安全性」という。▼1〜4のどの実装が優れているかは場合によるが、通常、4は推奨されない。例外を握りつぶすことで、システムが後々深刻な誤作動を起こす可能性があるからだ。そのような誤作動は原因がわかりにくい。しかしより重要なことは、例外安全性の高さはシステムの中でもっとも弱い部分に依存するということだ。部分的に例外安全なシステムというものは存在しない。ひとつの処理を通過して例外に対する挙動が4ならば、それを呼び出した処理全体の例外安全性が4なのである。
pass:
Draft