miso_soup3 Blog

主に ASP.NET 関連について書いています。

Code Contracts throw 例外

前回の記事CodeContractsを触ってみたで、
Contract.Requires(x != null);
と書いても例外が発生しない、と書きましたが、ウソでした。

証拠画像

例外を発生させる方法は以下の通りです。

■プロパティの Runtime Checking にチェックをいれ、
Perform Runtime Contract Checking に None "以外" を選ぶ。


このランタイムチェックについての記事がありました。
http://msdn.microsoft.com/ja-jp/magazine/hh148151.aspx

この設定は、プロジェクト毎に適用されるので、
例外がでない場合は、呼び出し元や呼び出し先の設定をチェックすると良いかもです。
http://devlicio.us/blogs/derik_whittaker/archive/2010/06/30/error-contract-requires-lt-texception-gt-must-use-the-rewriter.aspx

ちなみに、Runtime Checking にチェックを入れないと
下のようなアラートがでます。



このアラートですが、Runtime Checking にチェックをいれ
「None」を選ぶと、アラートはでません。