- - PR -
アプリケーションがエラーで落ちる時に処理を実行させるには(VB6)
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-01-15 16:54
お世話になります。
現在VB6作成されたアプリケーションの修正作業を行っています。 このアプリケーションが、たまにエラーで落ちるのですが、その際に、グローバル変数で開きっぱなしのデータベースや通信オブジェクトがいくつかあるので、落ちる前にそれらのクローズ処理を行いたいのです。 どこでエラーが発生するのかというのが特定できないので、On Error Goto文を使用する場合、相当な数のメソッドで同じようなOn Error Goto文を書かなければならず、その方法はできれば避けたいのです。 アプリケーションがエラーで落ちる時に実行する処理を記述する良い方法は無いでしょうか。 ご存知の方がいらっしゃれば、ご教授よろしくお願いします。 | ||||||||
|
投稿日時: 2007-01-15 18:47
ルートとなるメソッドに On Error ステートメントを使用すれば、呼び出し先のメソッドのエラーでも検知できます。 ただし、アプリケーションで検知できない実行時エラーについてはどうしようもありません。
根本的には、この設計が誤りだと思います。 資源は短期間に解放させられるような設計が望ましいです。 (プロセスが落ちても、勝手に Close されるリソースもありますが) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-01-15 19:47
途中で処理が中断する可能性は、これに限らず常にあるので、途中で中断しても問題ない様に設計するものです。クローズせずにプロセスが不正終了したとしても、物理リソースに限れば問題なく開放されるはずだし、データベースはロールバックされるでしょう。いったいどんな理由でクローズが必要なんでしょうか?それを明らかにしてくれれば、別の解決方法があるかもしれませんよ。
| ||||||||
|
投稿日時: 2007-01-24 11:48
御返答ありがとうございます。
アプリケーションが落ちればリソースは解放されるというのが確信を持てなかったのでお尋ねしたのですが、問題なく開放されると言う事なので処理そのものが不要ですね。 どうもありがとうございました。 |
1