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

 

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


 

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

66937. Рідна земля, живи! Виступ екологічної агітбригади 76.5 KB
  Мета: донести до людей значення екологічних проблем, зокрема, характерних для рідного краю; залучати учнів до агітаційної роботи з даного питання; виховувати любов до планети Земля, сприяти хоча б частковому вирішенню екологічної ситуації.
66938. Даруйте радість людям – і стане світ багатшим 53.5 KB
  Виховувати в учнів почуття доброти чуйності милосердя поваги до людей; формувати активну життєву позицію яка проявляється в дієвій допомозі людям; формувати в учнів уміння формулювати судження виховувати високі моральні якості. Добро спішіть творити люди. Живіть добро звершайте Та нагород за це не вимагайте.
66939. «Сумні дати серця» (сторінками життя Василя Стефаника) 120.5 KB
  Мета:познайомити учнів із життєвим шляхом українського письменника Василя Стефаника, розкрити трагізм його життя; розвивати чуйність, увагу, спостережливість; виховувати почуття патріотизму, любові до України, її синів. У додатку – презентація «Надто добрий знавець народної мужицької душі (життя і творчість В.Стефаника)».
66940. Професія педагога: «за» і «проти» 38.5 KB
  Слово суддям заключне слово класного керівника хід класної години Класний керівник: Сьогодні моє слово до вас мої вихованці. На нашому ринзі незвичайна і дуже відповідальна зустріч зустріч захисників і противників професії педагога. У правому куті команда захисників професії.
66941. Внеклассное мероприятие по английскому языку «Великобритания» 35.5 KB
  Thank you, and now I want you to know more about our teams. Let introduce with our teams. The competition consists of several tasks. The 1st task is to answer the questions about Great Britain. If your answer is correct the team will get one point. If your answer is wrong the second team will be allowed to give the answer.
66942. Досліджую свою оселю 72.5 KB
  Мета: вчити учнів досліджувати своє довкілля, робити висновки зі своїх досліджень, формувати у дітей уявлення про різноманітність архітектурних споруд, викликати інтерес до пізнання через дослідження, розвивати прагнення прикрасити, зробити комфортнішою свою оселю...
66943. Від пірамід до хмарочосів 1.16 MB
  Мета заходу: ознайомити учнів – випускників шкіл з професією будівельника, показати велич та красу цієї професії, довести, що професія будівельника – це постійний пошук та нескінченна творчість, допомогти дитині зробити професійний вибір відповідно своїм здібностям, інтересам, нахилам.
66944. Закріплення звукового значення букви «ґе». Опрацювання тексту «Ґави і Галаган» 76 KB
  Хід уроку Організаційний момент Вчитель Стали діти рівненько привітайте один одного посмішками починаємо наш урок читання. Рідну мову ми вивчаємо ЇЇ любимо не забуваємо Вчитель Як ми будемо працювати Учні Працюватимемо старанно. Щоб почути у кінці Що у нашім першім класі Діти просто молодці...
66945. ПРОЩАВАЙ, БУКВАРИКУ, НАШ РОЗУМНИЙ ДРУЖЕ! МИ ТОБІ, БУКВАРИКУ, ДЯКУЄМО ДУЖЕ! 153 KB
  Мета. Узагальнити і систематизувати знання учнів з навчання грамоти, розвивати мовлення, логічне мислення, вміння читати, спостережливість, увагу,допитливість. Виховувати повагу один до одного, інтерес до навчання. Під музику до зали заходять діти.