C#の例外処理機構の問題点(っていうほど大げさじゃないけど)は、

 - ドキュメントを見ないとメソッドが例外を投げるかどうかすら分からない。

 - 例外の詳細(例外オブジェクト)が必要がない(失敗したら単にnullを返してくれればいい)
  ような場合でもtry{...}catch{...}を書かなければならないのは鬱陶しい。

だと思う。
>>36はそれに対する悪あがき。もちろんあんまりエレガントじゃないのは分かってる。