Обработка ошибок
На этом занятии будет рассказано, как создать базовый код обработки ошибок для программ.
Даже в хорошо разработанных программах иногда возникают ошибки. Некоторые ошибки являются дефектами в коде, которые можно найти и исправить. Другие ошибки являются естественными следствием работы программы; например, программа может попытаться открыть файл, который уже используется. В подобных случаях ошибки можно спрогнозировать, но невозможно предотвратить. Задача прогнозирования этих ошибок и помощи программе справляться с ними ложится на программиста.
Ошибки во время выполнения
Ошибка, возникающая при выполнении программы, называется ошибкой во время выполнения. Ошибка во время выполнения возникает в тех случаях, когда программа пытается выполнить действие, не описанное в ней. Например, ошибка во время выполнения произойдет, если приложение пытается выполнить недопустимую операцию, вроде преобразования нечисловых строк в числовое значение.
При возникновении ошибки во время выполнения программа выдает исключение, которое обрабатывает ошибки посредством поиска в программе кода для обработки ошибки. Если такой код не найден, программа останавливается и должна быть перезапущена. Поскольку это может привести к потере данных, желательно создать код для обработки ошибок везде, где предполагается их возникновение.
Блок Try...Catch...Finally
Блок Try...Catch...Finally можно использовать для обработки ошибок во время выполнения в коде. Вы можете Try сегмент кода — если исключение выдается этим кодом, управление переходит к блоку Catch, а затем выполняется код в блоке Catch. После завершения кода выполняется любой код в блоке Finally. Весь блок Try...Catch...Finally помещен в оператор End Try. В следующем примере показано, как используется каждый блок.
Try ' Code here attempts to do something.Catch ' If an error occurs, code here will run.Finally ' Code in this block will always run.End TryВначале выполняется код в блоке Try. Если он выполняется без ошибок, программа пропускает блок Catch и выполняет код в блоке Finally. Если же в блоке Try возникает ошибка, выполнение немедленно переходит к блоку Catch, и выполняется записанный там код; затем выполняется код в блоке Finally.
Практическое задание
Чтобы использовать блок Try...Catch
1. В меню Файл выберите команду Создать проект.
2. В диалоговом окне Создание проекта в области Шаблоны выберите Приложение Windows.
3. В поле Имя введите TryCatch и нажмите кнопку ОК.
Откроется новый проект Windows Forms.
4. Из Панели элементов перетащите один элемент управления TextBox и один элемент Button на форму.
5. Дважды щелкните элемент управления Button, чтобы открыть редактор кода.
6. В обработчик событий Button1_Click введите следующий код:
Try Dim aNumber As Double = CDbl(Textbox1.Text) MsgBox("You entered the number " & aNumber)Catch MsgBox("Please enter a number.")Finally MsgBox("Why not try it again?")End Try7. Нажмите клавишу F5 для запуска программы.
8. Введите числовое значение в текстовом поле и нажмите кнопку. Отображается окно сообщения, показывающее введенное число, за которым следует предложение повторить попытку.
9. Затем введите нечисловое значение в текстовом поле, например слово, и нажмите кнопку. На этот раз, когда программа пытается преобразовать текст поля в число, она не может это сделать, и возникает ошибка. Вместо завершения кода в блоке Try будет выполнен код в блоке Catch, и появится окно сообщения, предлагающее ввести число. Затем выполнится блок Finally, приглашающий повторить попытку.