Лекция 12. Обработка исключений.pptx
- Количество слайдов: 11
1 Лекция 12. Обработка исключительных ситуаций Козьминых Н. М. дисциплина «Программирование»
2 Обработка исключительных ситуаций Исключительные ситуации – это нарушение спецификаций, не предусмотренные разработчиком. В таких исключительных ситуациях продолжение выполнения программы: либо становится невозможным (попытка выполнить операцию деления на ноль, открыть несуществующий файл и т. д. ); либо приведёт к некорректным результатам. Козьминых Н. М.
3 Обработка исключительных ситуаций try{ … } catch((<Класс исключения> <объект исключения>){ … } finally{ … } try (охраняемый блок) – блок, в котором возможна ошибка (исключительная ситуация). catch – блок, в котором происходит обработка исключительных ситуаций. finally – блок финализации, выполняется вне зависимости произошла или нет обработка исключительной ситуации. Козьминых Н. М.
Классификация исключений 4 Класс System. Exception (исключение) – базовый класс, от которого наследуются все другие исключения. В пространстве имён System определены исключения: Argument. Exception, Argument. Out. Of. Range. Exception, Arithmetic. Exception, Divide. By. Zero. Exception, Overflow. Exception. В пространстве имен System. IO собраны классы исключений, связанных с проблемами ввода-вывода: Directory. Not. Found. Exception, File. Not. Found. Exception и др. Козьминых Н. М.
5 Обработка исключений. Блок catch Класс исключения должен относится к числу классов исключений, в простейшем случае – к классу Exception. Обработчиков может быть много, но исключение захватывает лишь тот из них, кто стоит первым в списке проверки. Первыми должны идти наиболее специализированные обработчики, далее – по мере возрастания универсальности. Например, в начале должен идти обработчик исключения Divide. By. Zero. Exception, а уже за ним – Arithmetic. Exception. Козьминых Н. М.
6 Обработка исключений. Блок finally выполняется всегда, сразу после завершения работы try-блока, как бы последний ни завершился Блок try: может завершиться нормально и управление достигнет конца блока; выполнение может прервано исключительной ситуацией; управление может быть передано другому блоку из-за выполнения такого оператора, как return. Козьминых Н. М.
Пример 7 private void btn_Click(object sender, Event. Args e) { int a = Convert. To. Int 32(txt. A. Text); int b = Convert. To. Int 32(txt. B. Text); btn. Text = (a / b). To. String(); } Козьминых Н. М.
Пример 8 private void btn_Click(object sender, Event. Args e) { try { int a = Convert. To. Int 32(txt. A. Text); int b = Convert. To. Int 32(txt. B. Text); button 13. Text = (a / b). To. String(); } catch { Message. Box. Show("Ошибка!"); } } Козьминых Н. М.
Пример 9 private void button 13_Click(object sender, Event. Args e){ try { int a = Convert. To. Int 32(txt. A. Text); int b = Convert. To. Int 32(txt. B. Text); button 13. Text = (a / b). To. String(); } catch (System. Divide. By. Zero. Exception) { Message. Box. Show("Ошибка: деление на ноль"); } catch (System. Format. Exception) { Message. Box. Show("Ошибка: Введите цифры"); } } Козьминых Н. М.
Пример 10 private void button 13_Click(object sender, Event. Args e) { int a, b; try { a = Convert. To. Int 32(txt. A. Text); }catch (System. Format. Exception) { Message. Box. Show("Значение А - введите число"); txt. A. Focus(); return; } try{ b = Convert. To. Int 32(txt. B. Text); }catch (System. Format. Exception){ Message. Box. Show("Значение B - введите число"); txt. B. Focus(); return; } try{ button 13. Text = (a / b). To. String(); }catch (System. Divide. By. Zero. Exception){ Message. Box. Show("Ошибка: деление на ноль"); } Козьминых Н. М. }
11 Спасибо за внимание Вопросы… Козьминых Н. М.
Лекция 12. Обработка исключений.pptx