Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Название темы: Visual Basic 2008
Показать сообщение отдельно

Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


mrcnn, да, верно, но всё другое отключается. Про подчёркивания я уточнил, когда увидел тему Visual Studio .Net. Вероятно нужно в умной книге почитать, в Helpе так не находится. Искал по UnderLine Speell Check

Uzvern, если в коде нужно обработать одну строчку, в случаи ошибки, и ошибка одна, то можно используя конструкцию On Error Resume Next. Можно её использовать и не обрабатывать ошибки, оставив эту строчку в начале кода, так сказать пусть прога использует без ошибочную философию.
Код: Выделить весь код
On Error Resume Next
        '...
        If Err.Number = <Номер ошибки> Then
            '...Сообщаем что такая вот ошибка или делаем альтернативу, план Б
        End If
Вместо Ifа конечно же можно использовать любой переборщик ошибок, например как case со следующего примера. Его имеет смысл использовать если у нас прям целый проблемный блок, и в котором при малейшой ошибке стоит покинуть и в обработчике разобраться что стряслось и объяснить пользователю в чём дело.
Код: Выделить весь код
On Error GoTo Corrector
'...

Corrector:
Select Case Err.Number
            Case <Номер ошибки>
                '...Сообщаем что такая вот ошибка или делаем альтернативу, план Б
            Case Else 'Когда не предвиденная ошибка
                '...Так вот и так, отправте нам что привело к тому что выскочила такая ошибка
        End Select
Узнать описание ошибки можно через код
Код: Выделить весь код
On Error Resume Next
Err.Raise 6   ' Raise an overflow error иливместо 6ти указываем интересующий номер
MsgBox ("Error # " & CStr(Err.Number) & " " & Err.Description)
Err.Clear   ' Clear the error.
Ну и наконец-то в VB добавили конструкцию try, которая лично мне знакома с Delphi, я в начале поста упомянул о без проблемных/безошибочных прогах, так вот эта конструкция пробует(в переводе с try) выполнять ту часть кода, которая может быть потенциально ошибочной.
Код: Выделить весь код
    Try
    Catch ex As Exception
    End Try
В случаи чего мы предвидим потенциальную ошибку, через Catch ex, и обрабатываем.
Ещё раз повторюсь, что в VB6м данной конструкции не было.

С Helpom не всё в порядке, вроде бы всё просто
Код: Выделить весь код
MsgBox("Nead Help", MsgBoxStyle.MsgBoxHelp, "Little Help or Not")
Но функция MsgBox не возвращает никаких значений, если нажали Help. Нужно искать другой подход.
В VB6м сама структура
Код: Выделить весь код
Function MsgBox(Prompt, [Buttons As VbMsgBoxStyle = vbOKOnly], [Title], [HelpFile], [Context]) As VbMsgBoxResult     Member of VBA.Interaction
просит указать файл справки, да и раздел справки.

Не сказал бы, что это уж очень популярная фича, вызов из MsgBoxа справки. Если интерфейс интуитивно понятный то и справка не нужна. Тем не менее, правила хорошего тона обязывают её существование и дистрибуцию вместе с программой.

Отправлено: 15:07, 31-05-2008 | #97

Название темы: Visual Basic 2008