Средства обработки исключений



Выражение – последовательность операндов, объединенная последовательностью операций, задающая вычисления. В качестве операндов могут выступать константы, переменные и обращения к функциям. Порядок выполнения операция в выражении определяется их приоритетами. Для изменения естественного порядка выполнения операций (слева направо) используются круглые скобки. Строка – упорядоченная коллекция символов, используемых для представления текста.   (Сегмент Кода) + (Сегмент Данных) + (Сегмент Стека)                                  +          “Куча” (Динамическая Память)   12.02.18:При разработке программ С++ применяют консольный вывод (с помощью метода SystemConsole) и ввод-вывод с помощью графического пользовательского интерфейса Форматирование может применяться в разных случаях: -При выводе строк, числовых и других данных с помощью метода Write/WriteLn класса SystemConsole (консольный вывод) - При вставке строковых представлений, числовых и других данных в строки с помощью методов Format класса System::String и UpendFormat класса System….. String::Builder (использование пользовательского интерфейса) - При преобразовании в строку числовых данных с помощью метода ToString для числовых типов (использование пользовательского интерфейса)   16.02.18:Защита от дурака – это один из принципов разработки различных устройств, а также ПО, направленный на предотвращение их неправильной эксплуатации. В русском языке также встречается синоним термина – дуракоустойчивость. На уровне ПО защита от дурака реализуется чаще всего двумя способами: 1) Предусматривает предупреждение о возможном нежелательном действии со стороны пользователя (или о том, как нужно действовать), но не запрещает выполнение этого действия, а в случае наступления негативных последствий предусматривается выдача соответствующего сообщения 2) Предусматривает полную блокировку недопустимого действия, т.е. запрет для пользователя вводить что-либо иное, кроме разрешенного   Описательные операторы описывают те или иные конструкции языка, которые затем используются в исполняемых операторах Исполняемые операторы указывают компилятору какие именно действия следует выполнять программе. Операторы управления позволяют изменять естественный ход последовательного выполнения операторов программы Составной оператор – используется для разграничения блоков программы (фигурные скобки С++ или begin/end в Pascal) Операторы управления порядком выполнения команд (if/case). Для обеих форм применяются 2 формы записи: многострочная, многострочная.   26.02.18:Этот цикл не следует использовать для добавления элементов исходной коллекции во избежание побочных эффектов. Для добавления или удаления. Контейнер — это хранилище данных таких как массив, коллекция. Очевидно, что тип данных должны совпадать. Оператор break завершает выполнение текущего блока операторов. Этот оператор используется в циклических операторах для принудительного завершения цикла, а также, в операторе выбора варианта для предотвращения выполнения всех ветвей подряд. Необходимость использования этого оператора в теле цикла, когда условие выполнения итераций нужно проверять не в начале или конце итераций, а в середине тела цикла. При использовании вложенных операторов break завершает выполнения только того оператора, который непосредственно его окружает Оператор Continue передает управление в конец текущего блока. Он используется в циклических операторах для завершения текущей итерации, т.е пропускает часть операторов тела цикла следующих за ним. Если оператор continue использовать в цикле с параметром, то следует иметь ввиду, что перед началом новой итерации выполняется модификация параметра и лишь затем повторяются операторы тела цикла. GoTo: Частое использование этого оператора приводит к многократным передачам управления в результате программный код трудно читать и отлаживать, тк способствует появлению труднообнаруживаемых ошибок. В 60х годам некоторые кампании, разрабатывающие ПО требовали от разработчиков писать код без goto. В современном мире существуют рекомендации для GoTo: · Не входить в блок цикла извне · Не входит внутрь ветвей условного оператора · Не входить извне внутрь ветвей оператора switch (case) · Не передавать управление внутрь цикла Исходя из практики программирования полностью отказываться от этого оператора не стоит. Есть случаи, когда этот оператор обеспечивает наиболее простые и понятные решения (например, если необходимо выйти сразу из нескольких вложенных циклов)   Различие между функциями exit и … происходит обработка завершения среды выполнения с++, а при использовании функции abort программа завершается сразу. При разработке сложных программных систем практически невозможно избежать ошибок, которые проявляются не всегда, но в большинстве случаев приводят к краху систему или к получению неверного результата. Причиной таких ошибок являются так называемые исключения. Исключения – это условие ошибки, которое не позволяет продолжить выполнения программы по обычному пути. Они могут быть связаны с попыткой деления на 0/открытием несуществующего файла/ выходом индекса массива за пределы/невозможностью выделения памяти и тд. Если в исходном коде не предусмотрена обработка такого исключения, то программа аварийно завершается. Цель обработки исключения как минимум известить пользователя о недостоверности получаемого результата. А как максимум попробовать устранить последствия ошибки и все же получить желаемый результат. Используемый механизм обработки ошибок позволяет отделить код обработки ошибки от кода, выполняющегося при отсутствии таких обстоятельств.   

Средства обработки исключений

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

Блок Try содержит защищаемый код, в котором могут при сходить и перехватываться исключения. Этот блок выполняется до момента возникновения исключения или до своего успешного завершения. Если исключение произошло, то управление передается в блок catch, который … Если исключения не возникло, то управление не передается. Блок catch. Если исключение в блоке try все же произошло, то управление в блок catch передается … заданного типа, выясняющая обстоятельства возникновения. После выполнения

Блок catch(…) обрабатывает все исключения

 

12.03.18:при выборе того или иного способа передачи параметров в функцию нужно руководствоваться следующими соображениями:

1) Если параметр передан по значению и, следовательно, в функцию передается не сам

параметр, а лишь его копия, то:

- Вызов функции не будет связан с каким-либо побочным эффектом

- На месте этого параметра при вызове функции может располагаться не только переменная, но и произвольное выражение соответствующего типа

- Программа будет тратить дополнительные компьютера (память и время), особенно если в функцию передается большой массив данных

 

2) Если параметр передан по ссылке и, следовательно, в функцию передается сам параметр, то

- В теле функции параметр может быть изменен

- На месте этого параметра следует указывать не выражение, а переменную следующего типа

- Программа будет минимизировать

 

Функции с побочным эффектом

Функция называется функцией с побочным эффектом, если помимо вычисляемого результата, возвращаемого с помощью оператора return функция имеет выходные параметры, передаваемые по ссылке

 


Дата добавления: 2018-06-27; просмотров: 258; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!