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

 

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


 

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

54669. Запилення. Урок 261.5 KB
  Основні терміни і поняття: запилення перехресне запилення самозапилення. Вправа Дешифрувальник Запилення тема нашого уроку. Запилення.
54670. Опис власної системи роботи вчителя початкових класів 1.09 MB
  Проводити урокителепередачі вже стало традицією. Крім уроків –телепередач практикую уроки-подорожі уроки-ігри уроки-змагання інтегровані уроки.
54671. АКТУАЛЬНІСТЬ ДОСВІДУ 394.5 KB
  Глибінні засади освітніх реформ в Україні пов’язані із зміною освітньої парадигми з принципово новим цілепокладанням у педагогічному процесі із визнанням результатом навчання не ЗУНів а компетентності учнів і це суттєво впливає на цілі та зміст навчання організаційні форми методи та засоби. Зміст та методика викладання будьякого навчального предмету мають певні специфічні риси стосовно формування компетентностей учнів. додаток 4 Основні ідеї педагогічного досвіду полягають в наступному: підготувати учнів з...
54672. КАК ПОМОЧЬ СЛАБОУСПЕВАЮЩЕМУ УЧЕНИКУ 173 KB
  Задание 1. Посмотри вокруг операция абстрагирования Ученику предлагается посмотреть вокруг себя и увидеть как можно больше предметов одной и той же формы одного цвета из одного материала; предметов названия которых начинаются из одной и той же буквы Задание 2. Задание 1. Задание 1.
54673. Как помочь учиться учащимся 107.5 KB
  Для сильных учащихся подбираю задания требующие самостоятельности творческого поиска высокого уровня обобщения и систематизации изучаемого. Для слабых – задания повышающие активность в процессе восприятия осмысления нового материала задания оказывающие школьникам оперативную помощь в процессе первичного закрепления материала обучающие приемам рациональной умственной деятельности. Я объясняю новый материал второй раз и самостоятельные задания получают учащиеся средней группы. В конце урока я проверяю задания которые выполняли учащиеся...
54674. Опора і рух 149 KB
  Тіло згниває а кістки не стлівають. Під час розкопок при добуванні будівельних матеріалів піску вапняку мармуру люди знаходили кістки за ними визначали геологічний вік людини і починали їх вивчати. Історія вивчення скелета Повідомлення учня Давньогрецький вчений – філософ Демокріт сам збирав кістки на цвинтарі щоб вивчати скелет. А відомий римський лікар Клавдій Гален примушував своїх учнів приносити кістки мерців.
54675. Порушення функцій скелета та їхня профілактика 48.5 KB
  Мета уроку: розглянути вікові особливості опорнорухової системи показати причини що негативно й позитивно впливають на опорнорухову систему ознайомити учнів з наслідками порушень гігієни опорнорухової системи навчити дотримуватись правильної постави як запоруки здоров’я та довголіття закріпити знання про опорнорухову систему виховувати естетичну насолоду від споглядання правильної постави як складової зовнішньої краси Обладнання та...
54676. Година спілкування 42 KB
  Виховувати почуття патріотизму поваги до ветеранів;поважне ставлення до історичної пам’яті свого народу своїх рідних;моральну культуру учнів розвивати здатність відчувати співпереживати вміння слухати оточуючих. Обладнання: фотографії дідусів учасників Великої Вітчизняної війнифотографії пам’ятників нашого міста малюнки дітей. Не щезне в пам’ятілюдській як в ті страшні 19411945 роки воїни захищали рідну землю. Це свято не затьмариться в віках В цей день нестимуть люди квіти Ну обміліє пам’ятіріка В серцях нащадків буде жити.
54677. Органи чуття людини. Узагальнення 13.22 MB
  Мета: Узагальнити знання учнів про будову та функції сенсорних систем. Встановити особливості будови та функцій органів чуття людини, та їх пристосовування для дії в певних умовах. Сформувати усвідомлення цілісності організму людини. Навчити дітей самостійно обирати інформацію, коментувати її, створюючи презентації у програмі M.P.P.