Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Основы работы с исключениямиСодержание книги
Поиск на нашем сайте
Принимая во внимание, что .NET Framework включает большое количество предопределенных классов исключений, возникает вопрос: как их использовать в коде для перехвата ошибочных условий? Для того чтобы справиться с возможными ошибочными ситуациями в коде С#, программа обычно делится на блоки трех разных типов:
Блок try-catch
Основу обработки исключительных ситуаций в С# составляет пара ключевых слов try и catch. Эти ключевые слова действуют совместно и не могут быть использованы порознь. Ниже приведена общая форма определения блоков try-catch для обработки исключительных ситуаций:
try { // Блок кода, проверяемый на наличие ошибок } catch (ExceptTypel exOb) { // Обработчик исключения типа ExceptTypel // exOb.Message будет содержать текст исключения ) catch (ExceptType2 exOb) { // Обработчик исключения типа ExceptType2 // exOb.Message будет содержать текст исключения }
Где ExceptType — это тип возникающей исключительной ситуации. Когда исключение генерируется оператором try, оно перехватывается составляющим ему пару оператором catch, который затем обрабатывает это исключение. В зависимости от типа исключения выполняется и соответствующий оператор catch. Так, если типы генерируемого исключения и того, что указывается в операторе catch, совпадают, то выполняется именно этот оператор, а все остальные пропускаются. Когда исключение перехватывается, переменная исключения exOb получает свое значение. На самом деле указывать переменную exOb необязательно. Так, её необязательно указывать, если обработчику исключений не требуется доступ к объекту исключения, что бывает довольно часто. Для обработки исключения достаточно и его типа. Следует, однако, иметь в виду, что если исключение не генерируется, то блок оператора try завершается как обычно, и все его операторы catch пропускаются. Выполнение программы возобновляется с первого оператора, следующего после завершающего оператора catch. Таким образом, оператор catch выполняется лишь в том случае, если генерируется исключение. Пустой оператор catch без параметра ловит все возможные ошибки.
Давайте рассмотрим пример, в котором будем обрабатывать исключение, возникающее при делении числа на 0: using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace LC_Console { class Program { static int MyDel(int x, int y) { return x / y; }
static void Main() { link1: try { Console.Write("Введите x: "); int x = int.Parse(Console.ReadLine()); Console.Write("Введите y: "); int y = int.Parse(Console.ReadLine()); int result = MyDel(x, y); Console.WriteLine("Результат: " + result); } // Обрабатываем исключение возникающее при делении на ноль catch (DivideByZeroException) { Console.WriteLine("Деление на \"0\" зафиксировано\n"); goto link1; } // Обрабатываем исключение при некорректном вводе числа в консоль catch (FormatException) { Console.WriteLine("Было введено не число\n"); goto link1; } Console.WriteLine("Для продолжения нажмите любую клавишу..."); Console.ReadKey(); } } }
Рис. 2. 1. Результат работы кода выше
Данный простой пример наглядно иллюстрирует обработку исключительной ситуации при делении на «0» (DivideByZeroException), а так же пользовательскую ошибку при вводе не числа (FormatException).
|
||
|
Последнее изменение этой страницы: 2016-12-28; просмотров: 413; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.196 (0.006 с.) |