Профтемы студенту и преподавателю
Taketop.ru
СТУДЕНТУ И ПРЕПОДАВАТЕЛЮ
лекции по дисциплинам
Информатика и вычислительная техника :: Разработка и эксплуатация удаленных баз данных
Обработка исключительных ситуаций
Типы ошибок
Ошибки, вызываемые компьютерной программой (не важно на каком языке она написана), могут быть разделены на три основных типа: Design-time (во время проектирования), Runtime (во время выполнения) и Logic (логические).
К счастью, вы не обязаны мириться со случайными ошибками, которые приводят вашу программу к обрушению. Можно написать специальные процедуры Visual Basic, называемые структурными обработчиками ошибок, которые будут реагировать на ошибки времени исполнения. При структурной обработке исключений блоки кода проверяют возникновение определенных обстоятельств и формируют соответствующий отклик.
Когда использовать обработчики ошибок
Обработчики ошибок можно использовать в любых ситуациях, когда ожидаемое или неожиданное действие может привести к ошибке, которая остановит выполнение программы. Обычно обработчики ошибок используются для обработки внешних событий, которые влияют на программу - например, событий, причиной которых стали неработающая сеть или соединение с интернетом, отсутствующий диск в дисководе для гибких дисков, или отключенный принтер.
Корректность и устойчивость - два основных качества программной системы, без которых все остальные ее достоинства не имеют особого смысла. Понятие корректности программной системы имеет смысл только тогда, когда задана ее спецификация. В зависимости от того, как формализуется спецификация, уточняется понятие корректности.
Корректность - это способность программной системы работать в строгом соответствии со своей спецификацией. Отладка - процесс, направленный на достижение корректности.
Во время работы системы могут возникать ситуации, выходящие за пределы, предусмотренные спецификацией. Такие ситуации называются исключительными. Устойчивость - это способность программной системы должным образом реагировать на исключительные ситуации. Обработка исключительных ситуаций - процесс, направленный на достижение устойчивости.
Runtime ошибки в Visual Basic .NET вызывают исключения.
Исключение - это реакция на ошибку, сгенерированную приложением. При возникновении исключения появляется диалог, сообщающий об ошибке с дополнительной информацией.
Если мы не хотим, чтобы пользователь мог обрабатывали исключения, то мы можем сами легко обрабатывать их программно. Модель обработки ошибок в Visual Basic .NET позволяет сделать это очень легко. Обработчик ошибок в VB.NET - это блок кода, который может обнаружить исключения и выполнить необходимые действия для исправления этой ошибки.
Обработка ошибок с помощью Try...Catch
Блок кода, используемый для обработки ошибки времени исполнения, называется Try...Catch. Вы помещаете оператор Try в процедуре события непосредственно перед оператором, о котором вы беспокоитесь, а оператор Catch следует непосредственно за ним и содержит операторы, которые вы хотите выполнить, если произойдет ошибка времени исполнения. Также можно использовать некоторые дополнительные операторы, такие, как Catch When, Finally, Exit Try, а также вложенные блоки кода Try...Catch.
Примеры обработки исключений
Давайте приведем пример обработки ошибок на примере предыдущего кода:
Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click
Dim s As String
s = "answer"
Try
Button2.Text = s.Substring(10, 1)
Catch
Button2.Text = "error"
End Try
End Sub
Это тот же код, но теперь выражение, вызывающее ошибку помещено в блок обработки исключений Try...Catch...End Try. Этот блок представляет собой простейший обработчик исключения. Если в блоке Try генерируется исключение, то программа автоматически переходит в блок Catch. Если никаких исключений не генерируется, то программа пропускает блок Catch. При выполнении этого кода, происходит исключение System.ArgumentOutOfRangeException, но программа продолжает выполняться и не показывает никаких сообщений. После выполнения свойство Text кнопки Button2 будет иметь значение "error".
Использование блока Finally для выполнения задач устранения последствий ошибок
Этот блок исполняет операторы независимо от того, как компилятор выполняет блоки Try или Catch. Другими словами, независимо от того, приводят ли операторы в блоке Try к ошибке времени исполнения, может иметься код, который необходимо выполнить каждый раз по завершении действия обработчика ошибок. Например, можно обновить переменные или свойства, отобразить результаты вычислений в окне сообщения или как-то иначе, выполнить "очистку" переменных или отключение ненужных объектов формы.
Оператор Finally указывает компилятору, что завершающий блок кода должен выполняться независимо от того, обработана ошибка времени исполнения, или нет. Чтобы помочь вам точно разобраться, как это работает, после оператора Finally функцию MsgBox, которая отображает тестовое сообщение. Хотя это и полезно для тестирования, в реальной программе блок кода Finally можно использовать для обновления значений переменных или свойств, отображения данных или выполнения других операций.
Обработка исключительных ситуаций в базах данных
Класс DataAdapter сигнализирует о проблемах с помощью стандартного механизма исключительных ситуаций.
Для обработки ошибок, связанных с работой провайдеров, используется коллекция Errors класса SqlException или OleDbException. Оба класса унаследованы от класса Exception, определенного в пространстве имен System. При этом класс SqlException наследуется напрямую, а OleDbException - через класс ExternalException, что позволяет перехватывать ошибки, связанные с COM Interop.
Общими свойствами этих классов являются свойства Message и Source.
Работы, представленные на сайте http://taketop.ru, предназначено исключительно для ознакомления. Все права в отношении работ и/или содержимого работ, представленных на сайте http://taketop.ru, принадлежат их законным правообладателям. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие или полученные в связи с использованием работ и/или содержимого работ, представленных на сайте http://taketop.ru
Рейтинг@Mail.ru
Сайт управляется SiNG cms © 2010-2015