c++の例外処理に関して

以下のページでc++の例外の話があったのでこれを期に勉強してみました。
C++で例外を使ったプログラムをうまく書くにはどうすればいいのか - 射撃しつつ前転

参考文献は以下のものです。

例外処理の目的
例外処理は、局所的に対処出来ないエラーに対応するために用いる。
例えば、ライブラリ内でエラーが発生したときに例外を投げ、
ライブラリのユーザーが対処方法を実装する際に使う場合など。


ライブラリの作成者は、ユーザーの対処方法は知らないし、
ライブラリのユーザーはエラーの検知は実装できないから、
例外処理でエラー検知処理と、エラー検知時の処理を結びつける。


戻り値によるエラー検知との違い
C言語で行うように、戻り値でエラー処理を実装する場合、
エラー処理と通常処理の実装が混ざってしまう。
エラー管理のための余分な変数が増え管理が難しくなる。

また、エラーとして返す戻り値が必ず存在しなければいけない。(戻り値がint型の関数で、
intの全ての値を使う場合、戻り値でエラーを返せない。)


例外使用時の注意点
例外使用時は、非局所的な問題の処理のために設計されている。
局所的に対処できるようならエラーは、例外を使わず処理すべきである。
例えば、コマンドラインの引数が多すぎる場合にエラー出力する場合、例外処理を使う意味はない。
従来の制御構造では、綺麗に問題を解決出来ないときに例外を使うべきである。


まとめ
と、本をざっと読んで特に基礎的で重要な所をまとめてみました。
ポイントは、階層的なエラー処理というところでしょうか。
戻り値で局所的に対応できるエラーは、そうしたほうが、オーバヘッドなく高速に動きます。
しかしながら、大規模な処理、複雑な処理、ライブラリに分けた処理は、
エラーを局所的におさえこめない、もしくは抑えこむコスト(工数、リスク)が
高いため例外処理を使うべきなのでしょう。