- PR -

アプリケーションがエラーで落ちる時に処理を実行させるには(VB6)

1
投稿者投稿内容
ほまらら
ベテラン
会議室デビュー日: 2005/10/19
投稿数: 54
投稿日時: 2007-01-15 16:54
お世話になります。

現在VB6作成されたアプリケーションの修正作業を行っています。
このアプリケーションが、たまにエラーで落ちるのですが、その際に、グローバル変数で開きっぱなしのデータベースや通信オブジェクトがいくつかあるので、落ちる前にそれらのクローズ処理を行いたいのです。
どこでエラーが発生するのかというのが特定できないので、On Error Goto文を使用する場合、相当な数のメソッドで同じようなOn Error Goto文を書かなければならず、その方法はできれば避けたいのです。

アプリケーションがエラーで落ちる時に実行する処理を記述する良い方法は無いでしょうか。
ご存知の方がいらっしゃれば、ご教授よろしくお願いします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-01-15 18:47
引用:

ほまららさんの書き込み (2007-01-15 16:54) より:

どこでエラーが発生するのかというのが特定できないので、On Error Goto文を使用する場合、相当な数のメソッドで同じようなOn Error Goto文を書かなければならず、その方法はできれば避けたいのです。


ルートとなるメソッドに On Error ステートメントを使用すれば、呼び出し先のメソッドのエラーでも検知できます。
ただし、アプリケーションで検知できない実行時エラーについてはどうしようもありません。

引用:

グローバル変数で開きっぱなしのデータベースや通信オブジェクトがいくつかあるので


根本的には、この設計が誤りだと思います。
資源は短期間に解放させられるような設計が望ましいです。
(プロセスが落ちても、勝手に Close されるリソースもありますが)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2007-01-15 19:47
途中で処理が中断する可能性は、これに限らず常にあるので、途中で中断しても問題ない様に設計するものです。クローズせずにプロセスが不正終了したとしても、物理リソースに限れば問題なく開放されるはずだし、データベースはロールバックされるでしょう。いったいどんな理由でクローズが必要なんでしょうか?それを明らかにしてくれれば、別の解決方法があるかもしれませんよ。
ほまらら
ベテラン
会議室デビュー日: 2005/10/19
投稿数: 54
投稿日時: 2007-01-24 11:48
御返答ありがとうございます。

アプリケーションが落ちればリソースは解放されるというのが確信を持てなかったのでお尋ねしたのですが、問題なく開放されると言う事なので処理そのものが不要ですね。

どうもありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)