2008-09-15 26 views
4

VB 6.0にはグローバルハンドラがありません。ランタイムエラーを検出するには、エラーが発生する可能性がある各メソッドにハンドラを追加する必要があります。しかし、いくつかの場所が残っている可能性があります。 errors.エラーハンドラをアプリケーションのすべてのメソッドに追加する方法はありますか?Visual Basic 6.0アプリケーションでグローバルエラーハンドラを追加する方法はありますか?

答えて

6

いいえVB6でグローバルエラーハンドラを追加する方法はありません。ただし、すべてのメソッドにエラーハンドラを追加する必要はありません。すべてのイベントハンドラにエラーハンドラを追加する必要があります。例えば。クリックイベント、ロードイベントなど

+0

しかし、何らかの計算をしている可能性があり、オーバーフローエラーをスローするクラスの通常のメソッドはどうでしょうか? – ravi

+1

VB6アプリケーションでは、一度フォームを表示すると、そのアプリケーションとのすべての対話にはコールスタックの上部にイベントハンドラがいくつかあり、Brad Richardsによればエラーは上方に伝播します。ハンドラを必要とする以外の唯一の非イベントハンドラはSub Mainです。 –

-3

エラー時には次の再開 - 近いうちですが、しばらくお待ちください。 警告を参照したい場合があります

1

また、メソッドXがメソッドYとZを呼び出すと、メソッドXのエラーハンドラが3つすべてのメソッドをカバーします。

2

エラーは上向きですが、VB6にはスタックトレースを行う方法がないため、どのメソッドでエラーが発生したか分かりません。残念ながら、この情報が必要な場合は、あなたがどこにいたかだけを記録するために、各メソッドにハンドラを追加する必要があります。

0

私は昨日、このツールを発見しました:

http://www.everythingaccess.com/simplyvba-global-error-handler.htm

それはVB6とVBAアプリケーションでのグローバルなエラー処理を可能にし、商用製品です。

費用はかかりますが、仕事は完璧です。私はこのVB6 mangleを助ける他のツール(無料だが)を見たことがあるが、 "SimplyVB6 Global Error Handler for VB6"のような実際のグローバルエラー処理をカバーすることはできない。

"SimplyVB6 Global Error Handler for VB6"を使用すると、既存のコード行を変更する必要はなく、プラグインなどでコード行に番号を付ける必要はありません。 グローバルエラー処理(メインモジュールの1行のコード)を有効にするだけで、すべての設定が完了です。

「VB6のためのSimplyVB6グローバルエラーハンドラ」:

  • は、実際のモジュール名や関数名とコールスタックを表示するだけでなく、ソースコードの行を表示することができます。
  • P-Codeコンパイル済みのVB6プログラムでのみ動作します。
  • は、早期バインディングまたは遅延バインディング(DLL Hellなし)で動作します。

私は昨日の午後に見つけただけで、www.everythingaccess.comとは何の関係もなく、私の顧客の1人が私たちのVB6アプリケーションにバグを持っていたのでこの問題をもう一度見ていました。私は昨日の午後にこのツールをテストして、www.everythingaccess.comのサポートとメールを交換し、メールごとに評価版を入手することができました。 ウェブサイトでまだVB6製品の評価版をダウンロードすることはできません。電子メールを送信する必要がありますが、1時間以内に回答しています。

+2

エラーハンドラが動作するためには、VB6プロジェクトを必要に応じてP-Code形式にコンパイルする必要があります。"それは契約破りだ。 – raven

関連する問題