В VB6 при ошибке перейти к строке X или выход делать


У меня есть цикл Do Until в моем коде, который в некоторых обстоятельствах может ошибаться. Однако из-за ошибки я только хочу, чтобы код вышел из цикла Do Until и продолжил работу с остальной частью подпрограммы.

Я пробовал использовать On Error Exit Do, но это говорит

Ожидаемый Гото или резюме

Затем я попробовал использовать On Error GoTo 5865, так как 5865-это строка после цикла, из которой он должен продолжить выполнение, однако это говорит

Метка не определена

Как я могу чтобы это случилось?

1 2

1 ответ:

Вы объявляете ловушку ошибок в верхней части вашей СУБФУНКЦИИ или функции, т. е.:

On Error Goto ErrTrap

В этом случае "ErrTrap" - это метка, и она обычно находится в нижней части вашей процедуры:

ErrTrap:

If Err.Number = ... Then
   ...
   Resume AfterError ' another label
End If

MsgBox("Error blah blah")

Над "ErrTrap:" вы бы поместили

Exit Sub или Exit Function соответственно

И вы разместили бы "AfterError:" везде, где вы хотите, чтобы код возобновился после обработанной ошибки.

Это упрощение гораздо более сложной темы - есть много вариантов для ошибки обработка, включая захват номера строки, возобновление следующего и т. д. но этого должно быть достаточно, чтобы получить то, что вы хотите сейчас. Исследуйте предмет для получения дополнительной информации.