例外について

例外について

例外って基本的なこと。だから、まとめとこう思います。

例外はリターンコードに基づくエラーハンドリングより数多くの利点がある。
OOPにおいて例エラーハンドリングする手段は例外のみで、他の手段は使うべきではない。

というのも、.Netの世界では昔の文法が残っているせいで、
On Error Go To Error
的な処理でエラーコードを返すこともできる。リターンコードは廃止して、すべて例外で処理すべきだ。

リターンコードの場合、無視される可能性が非常に高い。というか、無視される。

Microsoftのクラスライブラリの設計ガイドラインに以下の記述がある。
エラーコードを返却すべきではありません。例外がフレームワーク内でエラーを報告する主要な手段です。

正しくハンドリング出来なければ、何もしない。

.Netの場合、検査例外がない。
そのため、意図的に例外をcatchしなければ、上に伝搬される。

例外をcatchする必要がある場合、catchした例外を適切に処理する。
何をもって適切か分からなければ、catchせずそのままthrowすべきだ。

最悪なのは、catchして握りつぶすこと。
そんなことする人はいない!と言われそうだが、名のしれたオープンソース内でも握りつぶしていることがあるそうだ。
よくあるのは暫定対応で握りつぶして、すっかり忘れてしまうパターンだろう。

catchした例外はすべて正しく対処。できなければ、上に伝搬させる。

このエントリーをはてなブックマークに追加
はてなブックマーク - 例外について
Share on Facebook
Post to Google Buzz
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip
Share on FriendFeed

Leave a Reply

  

  

  

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax