例外ってなんだろう

例外ってなんだろうと考える。とりあえず、完璧主義者のjohn robbinsはC++例外は使うな。エラーは関数が報告し、プログラマーは調べるべきだ。といい、かつ、.NETの例外処理は使えるらしい。まあ、ともかくこの本は奥が深いので後で読む。

.NET&Windowsプログラマのためのデバッグテクニック徹底解説 (マイクロソフト公式解説書)

.NET&Windowsプログラマのためのデバッグテクニック徹底解説 (マイクロソフト公式解説書)

エラーを分類すると

  • 外部的要因によるエラー

ファイルが無い、アクセス権限が無い、メモリが無いなど。ユーザーがなんとかすれば、続行可能かもしれない。(続行させるロジックを入れると難しくなるエラー処理)

  • 内部的要因によるエラー

設定されているプロパティが異常などのコーディングエラー

  • 原因が特定されないエラー

なんだかわからないけれど、サブシステムの一部がエラーになった。(続行不可能)

  • プログラムエラー

メモリ保護エラー、freeしたメモリ参照

  • ロジックエラー

デッドロックなど考え方のエラー

エラー処理方法

  1. try, catch
  2. SEH例外(MS特製)
  3. .net例外(MS特製)
  4. 戻り値(昔風)
  5. getErrorメソッドクラスあるいは、geterror()関数系(誰も見ちゃくれない)
  6. HRESULT+getLastError (WIndows系:これでスレッド対応しているという)

まあ色々あるという事で苦労の後はあるみたいだが。

でどうしたいんだろう

いまいち、どうまとめるのがいいのやら。