Справочная информация:
Я пытаюсь спланировать, как автоматизировать задачу, и ожидаю использовать несколько частных подпрограмм или функций из другой подпрограммы.Я буду использовать язык parent-child, чтобы попытаться сохранить правильность.
Родительская подпрограмма - это та, которая вызывает каждого из потомков.
Дочерние подпрограммы (children) будут вызываться по порядкучтобы выполнить их код.
Я пытаюсь определить, могу ли я иметь обработку ошибок в родительском элементе, чтобы выйти из sub для дочернего элемента и перейти к следующему дочернему элементу.
Несмотря на пример кода, я будуИспользование - это очень простой пример простого добавления 1 к i, запланированный код будет более сложным, когда resume next
будет недостаточно (не то, что игнорирование ошибки является «хорошей» практикой).
Проблема:
Мне не повезло в поиске, если существует существующий on error
для выхода из текущего потомка и перехода к следующему, где у меня есть только моя строка on error
в родительском.
Вопрос:
Есть ли способ выйти из подпрограммы текущего дочернего элемента на основе оператора обработки ошибок в родительской подпрограмме?Или я должен просто придерживаться обработки ошибок у каждого ребенка?
Код вопроса:
Дать грубый пример того, о чем я думаю;это не рабочий код.
Option Explicit
Public i As Long
Sub fdsa()
on error ' exit called subroutine
a
s
d
f
MsgBox i
End Sub
Private Sub a()
i = i + 1
End Sub
Private Sub s()
i = i + 1
End Sub
Private Sub d()
i = i + 1 / 0
End Sub
Private Sub f()
i = i + 1
End Sub
Окно сообщения выдаст «3» после завершения родительского элемента.