On Error Goto 0
VB6 アプリで実行時エラーが発生した場合、ステートメントを使用してエラー処理がオフになっているということですか?
この仮定は成り立つでしょうか?または、実行時エラーが発生する可能性のある他の状況はありますか?
Resume Next
エラーが aまたは aによって処理された場合Goto
、実行時エラーは確実に発生しません。正しいか間違っているか?
On Error Goto 0
VB6 アプリで実行時エラーが発生した場合、ステートメントを使用してエラー処理がオフになっているということですか?
この仮定は成り立つでしょうか?または、実行時エラーが発生する可能性のある他の状況はありますか?
Resume Next
エラーが aまたは aによって処理された場合Goto
、実行時エラーは確実に発生しません。正しいか間違っているか?
これは、プロシージャの呼び出しを含め、実行中のコード内にエラーハンドラがないために発生します。使用されたと仮定することはできませんOn Error Goto 0
。
未処理の実行時エラーを意味していると思います。未処理のため、アプリケーションは「異常終了」します。
Visual Basic Concepts、エラー処理階層、 http://msdn.microsoft.com/en-us/library/aa241677( VS.60 ).aspx
Resume NextまたはGotoのいずれかによってエラーが処理された場合、実行時エラーは発生しません。正しいか間違っているか?
誤り。エラーハンドラで実行時エラーが発生することがあります。エラー処理ロジックがこれを見逃すと、未処理のランタイムエラーが発生します。
簡単に言うと、を使用すると、プロシージャが終了するか、ステートメントOn Error Goto 0
の1つを使用してエラーハンドラを割り当てるまで、プロシージャ内のエラーハンドラが削除されます(無効またはオフになります) 。On Error
エラー処理コードのないユーザーインターフェイスイベントにも、定義するまでエラーハンドラーはありません。
デバッグ中に、VBEが「on-all-errors」、「in-class-module」、または「on-unhandled-errors」を中断する「ErrorTrapping」を指定できます。実行時の動作は「未処理のエラー時」です(Visual Basicランタイムライブラリがエラーハンドラーを検出できない場合、実行時エラーが発生します)。トラブルシューティング/デバッグを行う場合は、「エラートラップ」を「すべてのエラーで中断」に設定してみてください。これにより、エラーの時点でVBEが中断し、デバッグを開始したり、実行を継続したりできます。
問題を解決しようとしている場合は、デバッガーを使用してエラー メッセージを再現し、コードの実行を一時停止してエラーの発生場所を確認することをお勧めします。コール スタックを確認し、変数の値を調べて、エラーがどのように発生しているかを把握します。
エラーが発生する状況はいくつかあります。たとえば、イベントをトリガーしてすぐに処理するコード行を実行すると、イベント ハンドラーでエラーが発生する可能性があります (イベント ハンドラーにエラー処理がない場合)。また、コードが実行される前に、アプリの起動時に VB6 ランタイム エラーが表示されることもあります。