ハンドラを変更することができる。次のようにすると、自分のハンドラが呼び出されるようになる。このハンドラで何か意味のある処理をさせるのはできない。どこでどのような例外が発生したために自分が呼び出されたのかを知るすべがない。ハンドラ内で何か例外を投げないと、元の例外が再び送出されてabortしてしまう。abortしてしまう。指定されていることを期待してそれを投げるぐらいしかできない。列挙している型以外の例外が送出されることはありえない、ということになる。例外安全性エラー処理の方法はいろいろ考えられる。例外安全性を満たす必要がある。例外安全性は,次の3つの水準がある。リソースのリークを発生させない。オブジェクトの内部状態の整合性が保たれる。上位レイヤーが関連リソースにアクセスできない場合、関連リソースを解放する責任がある。この水準は、常に満たす必要がある。10個の要素をコンテナに追加するメソッドの中で例外が発生したとき、コンテナにまったく追加されていないかもしれないし、5個追加されているかもしれない。手続きをロールバックし、呼び出しによる副作用をもたらさない。完全に成功するか無効かのいずれかになる。上の例では、必ず、コンテナに何も挿入されていない状態にならなければなりません。IOなど、原理的に「強い保証」を満たせない状況もある。出力済みのものは巻き戻せない。Guarantee)例外を発生しない、というより、処理が必ず成功する。注意したいのは、単に例外を発生させなければいい、というわけではない。ファイルを開くのに失敗しても例外を発生しない。可能な場合は「強い保証」を満たすようにするのが望ましいが、そんなに簡単ではない。エラーからの回復より下のレイヤーから上がってきた例外への対処。※ネット上で「例外回復」という用語を見かけたが、そういう言い方はしないように思う。次を満たすようにすればいい。自分で対処できるエラーは処理する。対処・解決できないエラーは、上位レイヤーに伝えるようにする。