Страница: 1 |
Вопрос: Перехват,обработка,пропуск ОШИБКИ | Добавлено: 27.03.05 12:50 |
Автор вопроса: ![]() |
Всем доброго времени суток !
Тока не надо критиковать и говорить зачем оно надо. :) В предыдущем посте уже спрашивал об ошибке. Написал, что вродь получилось, но оказывается получилось не совсем то, что хотелось бы :( Вот пример: Dim Msg Private Sub Form_Load() 'Err.Clear 'Err.Raise 6 ' Generate an "Overflow" error. End Sub Private Sub Command1_Click() Err.Clear Err.Raise 6 ' Generate an "Overflow" error. End Sub Private Sub Timer1_Timer() 'Че нуно написать ЗДЕСЬ, чтобы перехватить ошибку. 'Обработать ее, хотя бы вот так: 'MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext 'И пропустить ее, чтобы приложение не вылетело. End Sub 'Заранее спасибо. |
Ответы | Всего ответов: 9 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #1 | Добавлено: 27.03.05 14:26 |
Объект Err автоматически сбрасывается при выходе из процедуры. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() Вопросов: 8 Ответов: 16 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 27.03.05 15:53 |
То есть отследить ошибку можно только в процедуре ? А не из процедуры НЕЛЬЗЯ. Я прально понял ? (На этом примере заморачиваться не надо.) |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #3 | Добавлено: 27.03.05 16:22 |
Можно по стеку вызовов.
То есть выловить ошибку можно в процедуре, которая вызывала текущую. Срабатывает первый найденный при обратной раскрутке стека обработчик ошибок. Но зарядить совершенно левую процедуру как обработчик ошибок не получится. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() Вопросов: 8 Ответов: 16 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 27.03.05 16:32 |
GSerg,спасибо за ответы. Все понятно. Буду реализовывать свою задачу по-другому. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 343368641 Вопросов: 17 Ответов: 686 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 27.03.05 23:19 |
on error goto 1
1 MsgBox Msg, , "Error", Err.HelpFile, Err.HelpContext вроде так |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 334781088 Вопросов: 108 Ответов: 2822 |
Профиль | Цитата | #6 | Добавлено: 28.03.05 09:53 |
Dim Msg as String Private Sub Form_Load() On Error Resume Next 'Err.Raise 6 ' Generate an "Overflow" error. Msg=Err.Description End Sub Private Sub Command1_Click() On Error Resume Next Err.Raise 6 ' Generate an "Overflow" error. Msg=Err.Description End Sub Хотя зачем такой изврат - непонятно... |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() Вопросов: 0 Ответов: 1876 ![]() |
Профиль | Цитата | #7 | Добавлено: 28.03.05 10:22 |
Видимо, человек хочет централизованную обработку ошибок учинить... |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 343368641 Вопросов: 17 Ответов: 686 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 28.03.05 10:51 |
Видимо, человек хочет централизованную обработку ошибок учинить...
только зачем, непонятно ![]() |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 28.03.05 12:06 |
Видимо, человек хочет централизованную обработку ошибок учинить...
On Error это не способ обработки ошибок ![]() ![]() |
Страница: 1 |
|