0

On Error Goto 0VB6 アプリで実行時エラーが発生した場合、ステートメントを使用してエラー処理がオフになっているということですか?

この仮定は成り立つでしょうか?または、実行時エラーが発生する可能性のある他の状況はありますか?

Resume Nextエラーが aまたは aによって処理された場合Goto、実行時エラーは確実に発生しません。正しいか間違っているか?

4

2 に答える 2

0

これは、プロシージャの呼び出しを含め、実行中のコード内にエラーハンドラがないために発生します。使用されたと仮定することはできません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が中断し、デバッグを開始したり、実行を継続したりできます。

于 2010-05-11T12:06:08.867 に答える
0

問題を解決しようとしている場合は、デバッガーを使用してエラー メッセージを再現し、コードの実行を一時停止してエラーの発生場所を確認することをお勧めします。コール スタックを確認し、変数の値を調べて、エラーがどのように発生しているかを把握します。

エラーが発生する状況はいくつかあります。たとえば、イベントをトリガーしてすぐに処理するコード行を実行すると、イベント ハンドラーでエラーが発生する可能性があります (イベント ハンドラーにエラー処理がない場合)。また、コードが実行される前に、アプリの起動時に VB6 ランタイム エラーが表示されることもあります。

于 2010-05-12T00:19:49.053 に答える