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

 

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


 

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

28892. Предмет и задачи вузовского курса Отечественной истории 22 KB
  Предмет и задачи вузовского курса Отечественной истории. Содержанием истории как науки является исторический процесс. Предметом курса отечественной истории является российский исторический процесс от древности до современности. В процессе изучения истории у человека формируется историческое сознание в содержание которого входит ряд элементов: знание фактов истории; способность рассматривать реальную действительность во всех трех временных измерениях: в прошлом настоящем будущем; обобщенный исторический опыт и вытекающие из него уроки...
28893. Первобытная эпоха человечества 24 KB
  Лет назад до образования классовых обществ в различных регионах планеты примерно в IV тыс. В соответствии с ней в древнейшей эпохе выделяются три периода: каменный век от возникновения человека до III тыс. бронзовый век с конца IV до начала 1 тыс. железный век с 1 тыс.
28894. Древние народы на территории России. Ранние башкиры 22 KB
  С востока из-за Дона устремилась новая волна кочевников – сарматов. В 3-7 вв. н.э. в эпоху Великого Переселения народов на территории Северного Причерноморья, а позднее – между Волгой и Дунаем, хлынули гуннские племена или гунны, вышедшие из степей Забайкалья и Монголии.
28895. Влияние природно-климатического, геополитического и религиозного факторов на российский исторический процесс 22 KB
  Важным географическим фактором определяющим особенности территории страны являются моря озера а также другие водоемы. Фундаментальные особенности ведения крестьянского хозяйства в конечном счете наложили неизгладимый отпечаток на русский национальный характер на первый взгляд противоречивый: способность к крайнему напряжению сил отсутствие ярко выраженной привычки к тщательности аккуратности в работе извечная тяга к €œподрайской землице€ необыкновенное чувство доброты коллективизма готовности к оказанию помощи вплоть до...
28896. Место средневековья во всемирно-историческом процессе 23.5 KB
  Место средневековья во всемирноисторическом процессе Понятие средний век было введено итальянскими гуманистами которые хотели таким образом подчеркнуть коренное отличие культуры своего времени от предшествующего исторического периода эпохи Античности. Как видно в оценке средневековья присутствуют крайности. Поразному определяются и временные рамки Средневековья. К тому же внутри тысячелетнего периода Средневековья принято выделять три этапа: Раннее Средневековье V в.
28897. Образование Древнерусского государства. Крещение Руси Х-Х11 в 30 KB
  Крещение Руси ХХ11 в. Расцвет Киевской Руси пришелся на правление князя Владимира 1 9801015 г. Это имело большое значение для дальнейшего развития Руси. Принятие христианства укрепляло государственную власть и территориальное единство Киевской Руси.
28898. Взаимоотношения Руси с соседними государствами и народами 22.5 KB
  Взаимоотношения Руси с соседними государствами и народами. Важное место занимали отношения с Византией которая являлась источником ресурсов для Руси. После крещения Руси Византия стала восприниматься как духовный центр христианства. Хазары контролировали Волжский торговый путь и выступали в двойной роли: с одной стороны препятствовали свободным торговым отношениям Руси; с другой выступали буфером между Русью и кочевниками.
28899. Удельный период в истории России (XII—XV вв.) 28.5 KB
  К середине XII века Русь раскололась на 15 княжеств которые были лишь в формальной зависимости от Киева. Феодальная раздробленность ослабляла Русь. В начальной стадии древнерусское государство распалось на 3 основные области: СевероЗападная Русь. Северовосточная Русь.
28900. Борьба за независимость русских земель против агрессии с Востока и Запада (XIII век) 27 KB
  Следствием этого явилось отставание России от Запада. Последствия нашествия: сократилось население страны; разделение городов подорвано городское ремесло; разрушены памятники духовенства и материальной культуры; особое последствие нашествия на истории России сказались в том что оно заложило азиатский способ власти в России.