R.I.Q.

@IT の件のスレッドより.

例外だと、当該メソッドを呼び出した側がキッチリ例外を把握していないと(当該メソッド呼び出しだけを厳密にtry-catchで囲った上で、投げられる例外の種類をきちんと把握していないと)危ないでしょう、ということです。

全然 危なくないです。プログラマが例外を把握していなかったら、より上位にその例外が伝播するだけでしょう。最終的にはアプリケーションが落ちることになると思いますが、それが危険かというと、それはアプリケーションの性質によりますね。世の中には、異常値で処理を続行してしまうよりもアプリケーションが落ちたほうが良い、というものがあるのです。私が実装しているものの多くもそうです。

菊池 Blogより.

プロジェクトを作成してすぐにCode Analyseを有効にするとMark assemblies with ReliabilityContractって怒られる。

M.I.Q. 1 (少年マガジンコミックス)

M.I.Q. 1 (少年マガジンコミックス)

ルールが変わったんだよ!
適当に例外投げてあとは上に任せればいいやという古いルールから,
頭働かせて MayCorruptAppDomain, MayCorruptInstance, MayCorruptProcess, WillNotCorruptState のどれに該当するか考えなきゃならないルールにな!

まあ,世の中のプログラマの信頼性のI.Q が低ければ,安っぽい信頼性のプログラムがプログラムのすべてと思わせることができる……というのはあるかもなぁ(陰謀説).
話は変わりますが,Visual Studio 2005 beta2 の Code Analysis 様のご意見,私も興味深く拝聴しております.Team Foundation Server は正直スルー気味ですが,Visual Studio Team System に付属する機能はやっぱり無視できなさそうです.下手すると数ヶ月後には「なんかぁ国内コミュニティで議論するよりぃ Code Analysis にお伺いを立ててぇ適当に海外 blog 漁った方がぁ楽しいし勉強になるよねぇ」とか電車の中で女子高生が話してたりしそうで怖いものがありますな.あるいは山奥にこもって Code Analysis と MSDN だけで修行したスーパー高校生プログラマの登場とか.