0

エラーを発生させるメソッドを持つVB6クラスがあります。

Public Sub DoSomething
  ...
  err.Raise 12345, description:="Error message"
  ...
End Sub

このメソッドは、次のフォームから呼び出されます。

Public Sub ErrTest()
  On Error Goto err1
  obj.DoSomething
  Exit Sub
err1:
  MsgBox err.Description
End Sub

これは実行時には正常に機能しますが、設計時にはエラー処理は機能しません。代わりに、VB6 IDEは、デバッグモードに入る、またはプログラムを終了できる標準のメッセージボックスを表示します。

なぜこれが起こるのですか?防げますか?

4

2 に答える 2

5

VB IDE で、[ツール]、[オプション]、[全般] タブ、[エラー トラップ フレーム] の順に移動します。おそらく「未処理のエラーで中断」が必要なのに対し、「すべてのエラーで中断」に設定されていると思います。

あなたのErr.Raiseステートメントは私にコンパイルエラーを与えます。ブレースを外してみてください。

また、使用したい場合があります

Err.Raise vbObjectError + 12345, Description:="Error message"

つまり、エラー コードを VB 定数 vbObjectError からオフセットして、衝突が発生しないようにします。

于 2008-12-03T10:43:59.237 に答える
1

コード ウィンドウを右クリックして、エラー トラップ オプションを変更することもできます。次のオプションは、[トグル] サブメニューから利用できます。

すべてのエラーで中断する
クラス モジュール
で中断する 未処理のエラーで中断する

これは、[オプション] ダイアログをポップアップするよりもはるかに簡単だと思います...

于 2008-12-09T19:06:19.437 に答える