Smith68 писал(а):у меня в одном месте программы (при нажатии кнопки) иногда выходит сообщение с кодом "40006" и мне хотелось, чтобы за место рантайма выскакивало более дружественное сообщение.
alibek писал(а):Можно разместить один общий обработчик ошибок в Sub Main.
Просто требования такие - больше в программе не должно быть никаких функций и процедур и обработчиков событий.alibek писал(а):Можно разместить один общий обработчик ошибок в Sub Main. Только в этому случае налагаются определенные требования к построению программы. ИМХО, оно того не стоит.
Option Explicit
Sub MAIN()
On Error GoTo ErrorHandler
Test1
Test2
Exit Sub
ErrorHandler:
Debug.Print "MAIN -> Error #" & Err.Number & " - " & Err.Description
Resume Next
End Sub
Sub Test1()
On Error GoTo ErrorHandler
Dim A() As Long
A(1) = 1
Exit Sub
ErrorHandler:
Debug.Print "Test1 -> Error #" & Err.Number & " - " & Err.Description
Resume Next
End Sub
Sub Test2()
On Error GoTo ErrorHandler
Dim A() As Long
A(1) = 1
Exit Sub
ErrorHandler:
A(2) = 2
Debug.Print "Test2 -> Error #" & Err.Number & " - " & Err.Description
Resume Next
End Sub
alibek писал(а):Можно разместить один общий обработчик ошибок в Sub Main. Только в этому случае налагаются определенные требования к построению программы. ИМХО, оно того не стоит.
NIC писал(а):Alibek В том и дело,что никак!!!
А ведь msvbvm делает MsgBox с ошибкой
Вы о чем?Может тогда писать прогу на Ассемблере.
Если будет ошибка - тогда повесит всю систему!!!
Сейчас этот форум просматривают: Google-бот, Majestic-12 [Bot] и гости: 41