Effective C# 3rd 読書メモ 50 例外フィルタの副作用を利用する

常にfalseを返す例外フィルタを定義することは奇妙に思えるかもしれないが、そうすべき理由がある。例外フィルタはスタックの一部として実行されるので、スタックが破棄される前に実行されるのだ。 これを利用すると、以下のように …

Effective C# 3rd 読書メモ 49 例外フィルタを使う

通常のcatch節では、例外の型に基いて捕捉を行う。例外をキャッチしたらリトライするような実装では、最終的に、例外を再度throwすることになる。このやり方では、その後の分析が難しくなる。このような場合には、例外フィルタ …

Effective C# 3rd 読書メモ 48 例外:強い保証を使用する

例外が投げられると、処理の流れは中断される。不適切な方法で例外を投げると、それをハンドリングすることは困難である。例外の投げ方にはベストプラクティスがある。 基本的な保証 強い保証 no-throw保証 基本的な保証は、 …

Effective C# 3rd 読書メモ 47 アプリケーション固有の例外クラスを作る

例外は、発生した場所から遠く離れた場所で処理されることがある。例外オブジェクトには、エラーの発生原因に関する情報が全て含まれていなければならない。アプリケーション固有の例外を作りたくなるかもしれないが、そのためには様々な …

Effective C# 3rd 読書メモ 46 リソースの後始末にusingとtry/finallyを利用する

.NET Frameworkの管理下にない(アンマネージド)リソースを使用する型は、Dispose()メソッドによって明示的に解放すべきである。Dispose()メソッドをもつ型を使うときに、Dispose()を実行する …