Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на Basic / VBA


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / Basic/VBA

Выпуск № 132
от 16.10.2005, 21:03

Администратор:Калашников О.А.
В рассылке:Подписчиков: 124, Экспертов: 19
В номере:Вопросов: 1, Ответов: 5


Вопрос № 27565: Обьясните пожалуйста подробно проверку ошибок. Вот например у меня вылезает сообщение о run-time error '68' Над что бы выскакивало нужное мне сообщение....

Вопрос № 27.565
Обьясните пожалуйста подробно проверку ошибок. Вот например у меня вылезает сообщение о run-time error '68' Над что бы выскакивало нужное мне сообщение.
Отправлен: 11.10.2005, 21:02
Вопрос задал: Dushin Igor (статус: 1-ый класс)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Licvidator
Здравствуйте, Dushin Igor!
Ну так рядом же пишется дискрипшн этой ошибки.. не совсем вопрос понятен. Или же пишите в каждой функции свой обработчик ошибок. Например:
On error goto e
'код программы
exit sub (или exit function)
e:
'пошел собственно обработчик
if err.Number=68 then msgbox "Опаньки, 68 ошибка"
resume (или resume next, или переход куда-либо, или же вообще выход из функции)

PS Читайте про обработчик On Error
Ответ отправил: Licvidator (статус: Профессор)
Отправлен: 11.10.2005, 23:27

Отвечает: Чурсанов Евгений Ильич
Здравствуйте, Dushin Igor!
Ответ смотри в приложении. Если надо могу дать неплохой мануал (пиши на внутреннюю почту). Удачи.

Приложение:

---------
Создайте систему, которой сможет пользоваться дурак, и только дурак захочет ею пользоваться.

Ответ отправил: Чурсанов Евгений Ильич (статус: 3-ий класс)
Отправлен: 11.10.2005, 23:46

Отвечает: Miklucho
Здравствуйте, Dushin Igor!
Можно использовать конструкцию
On Error goto Метка
...
Метка

Где вместо точек должен стоять код в котором происходит (или может произойти ошибка). Если ошибка происходит, то происходит переход на метку, и дальше программа начинает выполняться уже с нее. Меткой может быть набор цифр и букв. Этот способ самый простой и единственный которым я умею пользоваться :). Но он не рекомендуется по той причине, что использование команды GoTo (также как и Exit Sub, Exit For и Exit Do) не совместимо с принципами ООП и вообще считается дурным тоном. Считаться с принципами или нет решать тебе.
Пример в приложении.

Приложение:

Ответ отправил: Miklucho (статус: Студент)
Отправлен: 12.10.2005, 19:45

Отвечает: Александр Шевченко
Здравствуйте, Dushin Igor!
В VB6 и младше используется обработка ошибок, описанная в приложении.
B VB .NET она полностью переделана, но описать ее не могу :(

Приложение:

Ответ отправил: Александр Шевченко (статус: 4-ый класс)
Отправлен: 14.10.2005, 10:13

Отвечает: Залетин Виталий Викторович
Здравствуйте, Dushin Igor!

Есть такая вещь, как On Error Goto <label>, где <label> - это метка, на которую перейдет прога в случае ошибки. Например:

Sub Delenie()
dim x as long, y as long

On Error Goto ErrHandler
x=10
MsgBox CStr(x/y)
Exit Sub

ErrHandler:
MsgBox "Номер ошибки: " & CStr(Err.Number) & vbCrLf & _
"Описание: " & Err.Description & vbCrLf & _
"Источник: " & Err.Source
Exit Sub
End Sub
Тут будет ошибка деление на 0. Можно еще вот так (та же процедура):

Sub Delenie()
dim x as long, y as long

On Error Resume Next
x=10
MsgBox CStr(xy)
If Err Then
MsgBox "Номер ошибки: " & CStr(Err.Number) & vbCrLf & _
"Описание: " & Err.Description & vbCrLf & _
"Источник: " & Err.Source
Exit Sub
End If
End Sub
---------
Учиться никогда не поздно. Особенно программированию!
Ответ отправил: Залетин Виталий Викторович (статус: 4-ый класс)
Отправлен: 15.10.2005, 15:21


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2005, RusFAQ.ru, Россия, Москва. Все права защищены.
Идея, дизайн, программирование, авторское право: Калашников О.А.

Rambler's Top100 Яндекс


Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.basicvba
Архив рассылки
Отписаться
Вспомнить пароль

В избранное