Пошаговое руководство. Структурная обработка исключений
Обновлен: Ноябрь 2007
При обработке исключений наряду с оператором On Error, применяемым для неструктурной обработки исключений, в Visual Basic 2005 также предусмотрена возможность структурной обработки исключений, которая позволяет создавать и поддерживать программы с расширенной обработкой ошибок. При структурной обработке исключений блоки кода проверяют возникновение определенных ситуаций и реагируют на них соответствующим образом.
В этом пошаговом руководстве демонстрируется добавление в программу структурной обработки исключений. В частности, здесь демонстрируется использование блока Try...Catch...Finally для обработки исключений и выполнение фильтрации ошибок внутри блока Catch.
Примечание. |
---|
В рамках одной процедуры нельзя совмещать структурную и неструктурную обработку исключений. |
Примечание. |
---|
Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих настроек или версии среды. Для изменения параметров в меню Сервис выберите пункт Импорт и экспорт параметров. Дополнительные сведения см. в разделе Параметры Visual Studio. |
Создание приложения
Следующее приложение представляет собой форму заказа клиента для компании, продающей плюшевых медведей. Пользовательский интерфейс состоит из следующих элементов управления.
Одно текстовое поле TextBox для имени клиента.
Два элемента управления ComboBox для выбора цвета и размера медведя.
Одна кнопка заказа Button.
Три подписи, описывающие назначение каждого элемента управления для пользователя.
Когда пользователь вводит требуемую информацию и нажимает кнопку заказа, в приложении отображаются сведения о заказе.
Чтобы создать приложение
В меню Файл выберите пункт Новый проект. Откроется диалоговое окно Создание проекта.
В окне Типы проектов выберите Visual Basic и Windows, если они еще не выбраны, а затем выберите Приложение Windows в окне Шаблоны.
В окне Свойства в поле Имя введите TeddyBearProject и нажмите кнопку ОК. Проект будет добавлен в обозреватель решений, и откроется конструктор Windows Forms.
Добавьте в форму элементы управления и задайте их свойства, как описано ниже.
Элемент управления
Свойства
Значения свойства
Label
Name
Text
customerLabel
Форма заказа медведя
TextBox
Name
Text
customerName
Имя клиента
Label
Name
Text
bearColorLabel
Доступные цвета
ComboBox
Name
Items
Text
bearColor
Черный, Коричневый, Пятнистый
Цвет медведя
Label
Name
Text
bearSizeLabel
Доступные размеры
ComboBox
Name
Items
Text
bearSize
Небольшой, Обычный, Крупный
Размер
Button
Name
Text
order
Заказать
Добавление функциональности
После добавления и задания элементов управления и их свойств необходимо подключить к ним код, чтобы сделать их работоспособными. Следующий код обрабатывает событие Click кнопки Order и выводит сообщение для покупателя.
Чтобы добавить функции для формы и элементов управления
Добавьте следующий код в событие Click кнопки Order.
Dim bearOrder As String bearOrder = _ String.Format("You have ordered a {0} {1} bear.", _ bearSize.SelectedItem, bearColor.SelectedItem) MsgBox(bearOrder)
Теперь в приложение можно добавить код для структурированной обработки исключений.
Добавление блока Try...Catch
Чтобы убедиться в том, что покупатель указал цвет медведя, добавьте оператор Try...Catch. Необходимо учитывать следующее.
Оператор Catch без идентификатора перехватывает все исключения.
Оператор Catch с оператором When перехватывают исключения только в том случае, когда выражение равняется True; тип выражения должен неявно преобразовываться в тип Boolean.
Чтобы добавить простой блок Try...Catch
Добавьте следующий код к событию Click кнопки Order после раздела, в котором проверяется значения размера и цвета, т.е. после строки String.Format ("You have ordered a {0} {1} bear.", BearSize.SelectedItem, BearColor.SelectedItem). Этот код создает исключение при обнаружении неправильного значения цвета. При добавлении операторов Try имейте в виду, что редактор автоматически добавляет оператор End Try в конце оператора.
Try If ((bearColor.SelectedIndex < 0) Or _ (bearColor.SelectedIndex > 2)) Then Throw New System.Exception() End If ' The Catch statement handles errors caused by a lack of bear color. Catch ex As Exception When bearColor.SelectedIndex < 0 bearOrder = String.Format("You must select a bear color!") Finally Beep() ' Beep at the end. End Try
Чтобы добавить дополнительный оператор Catch
Добавьте в свойство bearColor элемента управления ComboBox новый элемент "Фиолетовый".
Добавьте следующий код под строкой bearOrder = String.Format("You must select a bear color!").
Catch ex As Exception When bearColor.SelectedIndex = 3 bearOrder = String.Format("There are no bears of that color.")
В код можно добавить любое количество операторов Catch.
Проверка
Теперь можно протестировать приложение, чтобы проверить его работоспособность.
Чтобы построить и запустить приложение
В меню Построить выберите пункт TeddyBearProject.
Нажмите клавишу F5 для запуска приложения. Появится главная форма.
Чтобы протестировать приложение
Введите имя в текстовое поле Имя клиента, затем выберите цвет и размер медведя в полях со списком Доступные цвета и Доступные размеры.
Нажмите кнопку Заказать. Если на предыдущем шаге выбран один из цветов Черный, Коричневый или Пятнистый, появится сообщение, содержащее сведения о заказанном медведе.
Если цвет не указан, появится сообщение, требующее указать цвет.
Нажмите кнопку ОК, чтобы закрыть сообщение.
В текстовом поле Доступные цвета выберите Фиолетовый, а затем нажмите кнопку Заказать. Появится сообщение, что фиолетовых медведей в наличии нет.
См. также
Основные понятия
Обзор структурной обработки исключений в Visual Basic
Ссылки
Оператор On Error (Visual Basic)
Оператор Try... Catch... Finally (Visual Basic)