あ、そうか。

インスタンスが作成されないということは、どっちみち
呼び出し元がその例外を捕まえないといけないんですよね。
メッセージも呼び出し元が「呼び出せなかった」と言うべきですね。

Newの中で最初の例外発生をその場でCatchするのは、
そのクラスのインスタンス作成開始から例外発生までの間で
使われたメモリを全て解放するため。
そのあとで、その場ではCatchされない例外を放れば役目は終わり。
こういう理解で良かったですか?

このとき不安なのが、メモリを全て解放できたか?ということですが、
クラス内の変数とByValの引数に対して、軒並み
  文字列=""
  数値=0
  開いたもの.Close
  作ったもの.Dispose
あたりを実行すれば大丈夫でしょうか。
他に注意すべき点はありますか?