異なるフォーム間の例外を捕捉するには?


Five  2004-04-14 17:31:56  No: 82998  IP: [192.*.*.*]

いつも参考にさせていただいています。
例外処理について質問です。

下記のソースをコンパイルし、開発環境上で実行(デバック)した場合
Form2のボタンを押下すると例外が発生
Form1側でその例外をCatchし、メッセージボックスにて例外の内容を表示する。

上記のデバック時に作成したEXEを単体で起動した場合
Form2のボタン2を押下すると例外が発生
Form1まで制御が戻らず、異常終了のメッセージダイアログが表示される。
(赤バッテンで、詳細、続行、終了ボタンがあるダイアログ)
表示内容は
System.InvalidCastException: 文字列 "test" から型 'Integer' へのキャストが有効ではありません。 ---> System.FormatException: 入力文字列の形式が正しくありません。

リリース版でリコンパイルした場合でもForm1まで制御は戻らず、
異常終了のメッセージダイアログが表示される。

Form1側で例外処理を行いたいのですが、どなたか解決方法ご存知の方
ご指導お願いします。

開発環境は
WindowsXP
Microsoft Development Environment2003
Microsoft .NET Framework 1.1
です。
情報等不足がありましたらご指摘お願いします。

(ソース)
'====================================================================
'例外を受け取り文言を表示
'Form1上
'====================================================================
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ 
Handles Button1.Click
  Dim objForm As New Form2
  Try
      objForm.ShowDialog()
  Catch ex As Exception
      MsgBox(ex.Message.ToString)
    Finally
        objForm = Nothing
  End Try
End Sub

'====================================================================
'例外を発生させThrow
'Form2上
'====================================================================
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _ 
Handles Button1.Click
  Dim intPool As Integer = 0
  Dim strPool As String = "test"
  Try
    '意図的にキャストエラー発生
    intPool = strPool
  Catch ex As Exception
    '例外を呼出元に返却
    Throw ex
  End Try
End Sub

'====================================================================

編集 削除
Five  2004-04-16 19:09:39  No: 82999  IP: [192.*.*.*]

追加情報です。

.NET2.0β版ではデバックモードでもForm1に制御が
戻らないと聞きました。

やはり例外処理は単一フォーム内で完結させるのが
本来の作り方なのでしょうか?
ご存知の方居られましたら情報提供お願いします。

編集 削除