tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルVS2003でエラー処理
記事No4392
投稿日: 2006/10/07(Sat) 13:13
投稿者poiu
VS2003のエラー処理のことでわからない部分があるので質問させてください。

Formでプログラムミスにより予期せぬExceptionが発生したとき、
アプリケーションが強制終了する前にログをTableかファイルに出力したいと思います。
エラー処理を各メソッドに記述するのでは箇所が増えて管理が大変になってしまいます。
何かいい方法はないのでしょうか。

自分で試した方法はアプリケーションをMDI形式にして親Formが子Formを呼出部分で一括でCatchを試みましたが出来ませんでした。
(子FormがShowされても親メソッドが終了するまで子Formに移らないため)

■試した方法
Try
 子Form.show()
Catch Exception
 ログ出力
 throw
End Try

[ツリー表示へ]
タイトルRe: VS2003でエラー処理
記事No4393
投稿日: 2006/10/07(Sat) 15:21
投稿者魔界の仮面弁士
> 自分で試した方法はアプリケーションをMDI形式にして親Formが子Formを呼出部分で一括でCatchを試みましたが出来ませんでした。

最上位のMainプロシージャで処理するのでは、遅いのでしょうか?

 Try
  Trace.Listeners.Add(New TextWriterTraceListener(…))

  '★アプリケーションのエントリポイント★
  Application.Run(New MID親フォーム())

 Catch ex As Exception

  '☆予期せぬ例外をここで処理☆
  Trace.WriteLine(……) 'StackTraceを併用するなど

 Finally
  Trace.Flush()
 End Try
 Trace.Close()

[ツリー表示へ]
タイトルRe^2: VS2003でエラー処理
記事No4394
投稿日: 2006/10/07(Sat) 18:11
投稿者poiu
魔界の仮面弁士さん、ありがとうございます。

スタートアップをFormではなくSub Mainにすればよかったのですね。
Sub Mainはコンソールアプリ用の設定だと勝手に思い込んでいました。
予期せぬExceptionのログ管理はSub Mainプロシージャで対応しようと思います。

わかりやすい説明ありがとうございました。

[ツリー表示へ]