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 включив в них "защиту кода" и соответственно приведите пример работы с вашими классами.

 

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


 

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

38903. Исследование законов движения тел по наклонной плоскости 346.5 KB
  Цель работы: проверка законов сохранения энергии для поступательного и вращательного движения тел по наклонной плоскости с учетом силы трения.1 Сила трения Силы трения появляются при перемещении соприкасающихся тел или их частей друг относительно друга. Трение возникающее при относительном перемещении двух соприкасающихся тел называется внешним; трение между частями одного и того же сплошного тела например жидкости или газа носит название внутреннего трения. Сила и есть сила трения покоя.
38904. ОПРЕДЕЛЕНИЕ ВРЕМЕНИ И ЭНЕРГИИ УДАРА 2.35 MB
  Лаборатория Физические основы механики ЛАБОРАТОРНАЯ РАБОТА № ФМ5 ОПРЕДЕЛЕНИЕ ВРЕМЕНИ И ЭНЕРГИИ УДАРА ТРЕБОВАНИЯ ТЕХНИКИ БЕЗОПАСНОСТИ: Перед включением электроприборов проверить целостность шнуров питания вилки и заземление. ЦЕЛЬ РАБОТЫ: изучение перераспределения энергии соударяющихся тел определение времени удара. Удар называется центральным если в момент удара центры инерции сталкивающихся тел находятся на одной прямой. Различают два предельных случая удара – абсолютно упругий и абсолютно неупругий.
38905. ИССЛЕДОВАНИЕ УПРУГОГО УДАРА 1.5 MB
  Лаборатория Физические основы механики ЛАБОРАТОРНАЯ РАБОТА № ФМ5 А ИССЛЕДОВАНИЕ УПРУГОГО УДАРА Методическое руководство подготовлено: к. Удар называется центральным если в момент удара центры инерции сталкивающихся тел находятся на одной прямой. Различают два предельных случая удара – абсолютно упругий и абсолютно неупругий. После удара столкнувшиеся тела движутся вместе с одинаковой скоростью.
38906. ИЗУЧЕНИЕ ДВИЖЕНИЯ ТЕЛА ОТНОСИТЕЛЬНО ГЛАВНЫХ ОСЕЙ ИНЕРЦИИ 2.74 MB
  Лаборатория Физические основы механики ЛАБОРАТОРНАЯ РАБОТА № ФМ6 ИЗУЧЕНИЕ ДВИЖЕНИЯ ТЕЛА ОТНОСИТЕЛЬНО ГЛАВНЫХ ОСЕЙ ИНЕРЦИИ Составитель: к. ЦЕЛЬ РАБОТЫ: определение периодов колебаний и моментов инерции тел относительно главных осей инерции. КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ Моментом инерции тела относительно некоторой оси в физике называют величину равную сумме произведений элементарных масс из которых состоит тело на квадраты их расстояний до оси: Проекция момента импульса тела на ось вращения и угловую скорость связаны...
38907. Знакомство с методами измерения физических величин и оценкой погрешностей измерений 264.5 KB
  Лаборатория Физические основы механики ЛАБОРАТОРНАЯ РАБОТА № ФМ0 Знакомство с методами измерения физических величин и оценкой погрешностей измерений Руководство подготовлено доц. ЦЕЛЬ РАБОТЫ: Ознакомиться с прямыми и косвенными измерениями методами обработки результатов измерений. Чтобы найти значение как можно более близкое к истинному нужно проводить большее число измерений и на их основе вычислить среднее арифметическое значение. Чем больше число измерений тем ближе среднее значение к истинному.
38908. ОПРЕДЕЛЕНИЕ МОМЕНТА ИНЕРЦИИ ТЕЛА МЕТОДОМ КРУТИЛЬНЫХ КОЛЕБАНИЙ 612.5 KB
  Лаборатория Физические основы механики ЛАБОРАТОРНАЯ РАБОТА № ФМ1 ОПРЕДЕЛЕНИЕ МОМЕНТА ИНЕРЦИИ ТЕЛА МЕТОДОМ КРУТИЛЬНЫХ КОЛЕБАНИЙ Нормоконтроль: Переработано: к. ЦЕЛЬ РАБОТЫ: изучение вращательного движения тела на примере крутильных колебаний. Определение момента инерции твердого тела. КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ Абсолютно твёрдым телом называется тело которое ни при каких условиях не может деформироваться то есть расстояние между двумя точками или точнее между двумя частицами этого тела остаётся постоянным.
38909. Изучение прецессии лабораторного гироскопа 4.27 MB
  Окружности по которым движутся точки тела лежат в плоскостях перпендикулярных к этой оси. Эти векторы не имеют определённых точек приложения: они могут откладываться из любой точки оси вращения. Вектор направлен вдоль оси вращения в соответствии с правилом правого винта т. При вращении тела вокруг неподвижной оси вектор углового ускорения направлен вдоль оси вращения в сторону...
38910. Исследование законов вращательного движения на маятнике Обербека 1.08 MB
  ЦЕЛЬ РАБОТЫ: расчет момента инерции сложного тела исследование зависимости момента инерции от распределения массы внутри твердого тела от величины внешней силы и от ее плеча. КРАТКИЕ ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ Абсолютно твёрдым телом называется тело которое ни при каких условиях не может деформироваться то есть расстояние между двумя точками или точнее между двумя частицами этого тела остаётся постоянным. При вращении твёрдого тела все его точки движутся по окружности центры которых лежат на одной прямой называемой...