15319

Обработка ошибок с помощью исключений

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа №5 Тема: Обработка ошибок с помощью исключений. Цель изучить основные способы программирования устойчивого кода. Обработка ошибок с помощью исключений Основная философия Java в том что плохо сформированный код не будет работать. Идеальн...

Русский

2013-06-11

30 KB

4 чел.

Лабораторная работа №5

Тема: Обработка ошибок с помощью исключений.

Цель - изучить основные способы программирования "устойчивого кода".

Обработка ошибок с помощью исключений

Основная философия Java в том, что “плохо сформированный код не будет работать”.

Идеальное время для поимки ошибки - это время компиляции, прежде чем вы попробуете даже запустить программу. Однако не все ошибки могут быть определены во время компиляции. Оставшиеся проблемы должны быть обработаны во время выполнения, с помощью некоторого правила, которая позволяет источнику ошибки передавать соответствующую информацию приемщику, который будет знать, как правильно обрабатывать затруднение.

В C и других ранних языках могло быть несколько таких правил, и они обычно устанавливались соглашениями, а не являлись частью языка программирования. Обычно вы возвращали специальное значение или устанавливали флаг, а приемщику предлагалось взглянуть на это значение или на флаг и определить, было ли что-нибудь неправильно. Однако, по прошествии лет, было обнаружено, что программисты, использующие библиотеки, имеют тенденцию думать о себе, как о непогрешимых, например: “Да, ошибки могут случаться с другими, но не в моем коде”. Так что, не удивительно, что они не проверяют состояние ошибки (а иногда состояние ошибки бывает слишком глупым, чтобы проверять). Если вы всякий раз проверяли состояние ошибки при вызове метода, ваш код мог превратиться нечитаемый ночной кошмар. Поскольку программисты все еще могли уговорить систему в этих языках, они были стойки к принятию правды: Этот подход обработки ошибок имел большие ограничения при создании больших, устойчивых, легких в уходе программ.

Решением является упор на причинную натуру обработки ошибок и усиление правил. Это действительно имеет долгую историю, так как реализация обработки исключений возвращает нас к операционным системам 1960-х и даже к бейсиковому “on error goto” (переход по ошибке). Но исключения C++ основывались на Ada, а Java напрямую базируется на C++ (хотя он больше похож на Object Pascal).

Слово “исключение” используется в смысле “Я беру исключение из этого”. В том месте, где возникает проблема, вы можете не знать, что делать с ней, но вы знаете, что вы не можете просто весело продолжать; вы должны остановиться и кто-то, где-то должен определить, что делать. Но у вас нет достаточно информации в текущем контексте для устранения проблемы. Так что вы передаете проблему в более высокий контекст, где кто-то будет достаточно квалифицированным, чтобы принять правильное решение (как в цепочке команд).

Другая, более значимая выгода исключений в том, что они очищают код обработки ошибок. Вместо проверки всех возможных ошибок и выполнения этого в различных местах вашей программы, вам более нет необходимости проверять место вызова метода (так как исключение гарантирует, что кто-то поймает его). И вам необходимо обработать проблему только в одном месте, называемом обработчик исключения. Это сохранит ваш код и разделит код, описывающий то, что вы хотите сделать, от кода, который выполняется, если что-то случается не так. В общем, чтение, запись и отладка кода становится яснее при использовании исключений, чем при использовании старого способа обработки ошибок.

Прочитайте этот текст для освоения программирования исключений.

Задание лабораторной работы.

1. Напишите класс ввода целых и действительных данных с консоли, предусмотрев "обработку ошибок - не цифры....".

2. Перепишите программу из лабораторной работы № 3. Включите в программу возможность ввода исходных данных с консоли и "защитите" вычисление, указав соответствующие "исключения" (возможно новые).

3. Перепишите разработанные вами классы из лабораторной работы № 4 включив в них "защиту кода" и соответственно приведите пример работы с вашими классами.

 

Рекомендованная литература для дополнительного чтения - см. этот архив.


 

А также другие работы, которые могут Вас заинтересовать

74061. Основы химической кинетики. Кинетика гомогенных процессов, закон действия масс 23.06 KB
  Скорость химической реакции изменение концентрации одного из участвующих в реакции веществ. При увеличении температуры на каждые 10 градусов скорость реакции увеличивается в 24 раза закон ВантГоффа. Также скорость реакции увеличивается с повышением концентрации вещества. Кинетика гомогенных процессов: В гомогенном химическом процессе все реагирующие вещества и продукты реакции находятся в одной фазе где протекает реакция.
74063. Основные положения качественного и количественного анализа 15.48 KB
  Цель аналитической химии установление качественного и количественного состава вещества или смеси веществ. Задачей качественного анализа является выяснение качественного состава вещества т е. В зависимости от задания аналитическая химия подразделяется на качественный анализ нацеленный на определение того что или какие вещества в какой форме находится в образце и количественный анализ нацеленный на определение того сколько данного вещества находится в образце. Для определения качественного состава какоголибо вещества необходимо...
74064. Количественные методы исследования химического состава соединений и продуктов 13.94 KB
  Количественный химический анализ имеет целью определение относительного количества отдельных составных частей какоголибо химического соединения или смеси. Применяемые в нём методы находятся в зависимости от качеств состава вещества и потому количественному химическому анализу должен предшествовать всегда качественный химический анализ. Для производства количественного анализа можно применять два различных метода: весовой и объемный. При объёмном анализе измеряются объёмы титрованных содержащих определенное количество реактива растворов...
74065. Аналитические группы катионов 15.03 KB
  К I аналитической группе относятся катионы щелочных металлов калия K натрия N лития Li и катион аммония NH4. Вследствие этого катионы данной группы не имеют группового реагента и открывают их только с помощью частных реакций. Перед проведением частных реакций на катионы I аналитической группы ионы других групп удаляют методом осаждения например в виде карбонатов в нейтральной или щелочной среде. Ко II аналитической группе относятся катионы дающие малорастворимые соединения при взаимодействии с соляной кислотой и ее солями.
74066. Государственно-правовое развитие Англии в Новейшее время 121 KB
  Эволюция государства и права в новейшее время. Основные тенденции развития государства и права в ХХ веке. Новейший период в истории государства и права связан с серьезными изменениями в политической системе многих стран обусловленными глубокими социально-экономическими причинами. Основное назначение современного права состоит в том чтобы сохраняя основные устои общества трансформировать его приспособить к новым общественным потребностям.
74067. Соединенные Штаты Америки в Новейшее время 137.5 KB
  Государственное развитие США в Новейшее время. Право США в Новейшее время. Право США в Новейшее время. Особенности государственного развития США в Новейшее время.
74068. Франция в Новейшее время 99 KB
  Развитие государственного устройства Франции в Новейшее время. Право Франции в Новейшее время. Развитие государственного строя в период между двумя мировыми войнами Государственный строй Франции после Первой мировой определялся Конституцией 1875 г. В 30е годы в условиях острого социального и экономического кризиса во Франции активизируется деятельность профашистских организаций...
74069. Государственное развитие Германии в ХХ веке 140.5 KB
  Государственное развитие Германии в ХХ веке. Право Германии в Новейшее время. Революция 1918 года в Германии. Поражение Германии в Первой мировой войне внутренние противоречия влияние событий в России привели к революционному взрыву в ноябре 1918 г.