Программирование
Веб программирование

Структурная обработка ошибок в vb.net, часть I

 
 

В VB.Net обработка ошибок очень сильно изменилась в лучшую сторону, и стала как и у всех нормальных языков(C++ например) структурной, хотя до сих пор осталась конструкция On Error Resume, и объект Err. В начале я расскажу о структурной обработки ошибок, а потом вкраце о обычной(которая вышла с первой версии Basic`a, и которой уже несколько десятков лет(35-40)(не удивительно что она устарела)).
В любой программе ошибки очень часто возникают не только по вине программиста, который с ошибками написал код, но и по вине пользователя, который очень часто пытается сделать то, что программа от него не ждет. Например, если программа ждет ввода числа, а пользователь вводит символы, то происходит ошибка(если данные должны поместиться в переменную с типом Integer(или схожим)), или бывает, что программа пытается открыть файл, которого не существует, то опять же происходит ошибка.
При структурной обработке ошибок часть кода помещается в блок Try...Catch, и если в нем происходит ошибка, то программа выпоняет запасную часть кода.
Синтаксис:

Try
Основной код программы
Catch
Аварийный код программы, выполняется если в Основном коде произошла ошибка
End Try

Сейчас мы сделаем программу которая будет умножать введенное в текст. поле число на 3, но если пользователь ввел не число а символ, то программа обработает эту ошибку. На форме размести текст. поле, и кнопку, вот код:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Hislo As Integer ' Объявляем переменную Hislo как INTEGER 
Try
' Основной код программы:
Hislo = TextBox1.Text * 3 ' Умножаем число введеное в текст. поле на 3
MsgBox(Hislo)
Catch
' Аварийный код программы: 
MsgBox("Введен не допустимый символ!", 16, "Ошибка")
End Try
End Sub 

Теперь запусти программу, и введи вместо числа какой - нибудь символ, и нажми на кнопку. Программа обработает возникшую ошибку.
Исходник


Есть вопросы? Спроси на нашем форуме!!
Нет комментариев

Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.