- Код: Выделить всё
Private Sub Form_Load()
On Error GoTo er
test
Exit Sub
er:
MsgBox "Ошикба: " & Err.Description
End Sub
(в модуле)
- Код: Выделить всё
Sub test()
Err.Raise 15, , "test"
End Sub
Всё проходит отлично, выбрасывается ошибка, ловится, и выводится окошко.
Перемещаем код из модуля в класс, вызываем из формы метод класса:
- Код: Выделить всё
Private Sub Form_Load()
On Error GoTo er
Dim c As New Class1
c.test
Exit Sub
er:
MsgBox "Ошикба: " & Err.Description
End Sub
Я ожидал аналогичного поведения.
Но ошибка не "проваливается" в место, откуда её вызвали, и выполнение останавливается на Err.Raise.
Может, я что-то делаю не так или чего-то не понимаю?
Пока обхожу проблему с помощью Event'ов. Насколько это (не)правильно и есть ли альтернативы?