Ключевые концепции
Ключевые концепции
[x]. Обработка исключений - это механизм, позволяющий справиться с неожиданными условиями, возникшими в период выполнения.
[x]. Отказ - это невозможность во время выполнения программы выполнить свой контракт.
[x]. Программа получает исключение в результате: отказа вызванной ею программы, нарушения утверждений, сигналов аппаратуры или операционной системы об аномалиях, возникших в ходе их работы.
[x]. Программная система может включать также исключения, спроектированные разработчиком.
[x]. Программа имеет два способа справиться с исключениями - Повторение вычислений (Retry) и Организованная Паника. При Повторении тело программы выполняется заново. Организованная Паника означает отказ и формирование исключения у вызывающей программы.
[x]. Формальная роль обработчика исключений, не заканчивающегося retry, состоит в восстановлении инварианта, но не в обеспечении контракта программы. Последнее всегда является делом тела программы (предложения do). Формальная роль ветви, заканчивающейся retry, состоит в восстановлении инварианта и предусловия, так чтобы тело программы могло попытаться в новой попытке выполнить контракт.
[x]. Базисный механизм обработки исключений, включаемый в язык, должен оставаться простым, если только поощрять прямую цель обработки исключений - Организованную Панику или Повторение. Для приложений, нуждающихся в более тонком контроле над исключениями, доступен класс EXCEPTIONS, позволяющий добраться до свойств каждого вида исключений и провести их обработку. Этот класс позволяет создавать и обрабатывать исключения разработчика.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Ключевые концепции
Ключевые концепции [x]. Целью программной инженерии является нахождение путей построения ПО высокого качества. [x]. Качество ПО лучше всего видится как компромисс между целым рядом различных целей, а не как единый фактор. [x]. Внешние факторы, понятные пользователям и
Ключевые концепции
Ключевые концепции [x]. Выбор надлежащей структуры модуля является ключом к достижению целей его возможного повторного использования и расширяемости. [x]. Модули служат как для декомпозиции программного обеспечения (проектирование сверху вниз), так и для его композиции
Ключевые концепции
Ключевые концепции [x]. Для разработки ПО характерна повторяющаяся деятельность, включающая частое использование общих образцов (common patterns). Но имеются существенные вариации того, как используются и комбинируются эти образцы, так примитивные попытки работать с
Ключевые концепции
Ключевые концепции [x]. Вычисление включает три вида ингредиентов: процессоры (или потоки управления), действия (или функции) и данные (или объекты). [x]. Архитектуру системы можно получить исходя из функций или из типов объектов. [x]. Описание, основанное на типах объектов, с
Ключевые концепции
Ключевые концепции [x]. Теория абстрактных типов данных (АТД) примиряет необходимость в точности и полноте спецификаций с желанием избежать лишних деталей в спецификации.[x]. Спецификация абстрактного типа данных является формальным математическим описанием, а не текстом
Ключевые концепции
Ключевые концепции [x]. ОО-вычисления характеризуются высоко динамичной структурой времени выполнения, в которой объекты создаются только по запросу.[x]. Некоторые объекты, используемые ПО, являются моделями внешних объектов (обычно косвенными). Другие объекты служат
Ключевые концепции
Ключевые концепции [x]. Существует три основных режима создания объектов: статический, основанный на стеке, динамический. Последний характерен для ОО-языков, но встречается везде, например, в Lisp, Pascal (указатели и new), C (malloc), Ada (типы доступа).[x]. В программах, создающих много
Ключевые концепции
Ключевые концепции [x]. Классы могут иметь формальные родовые параметры, представляющие типы.[x]. Родовые классы служат для описания общих контейнерных структур данных, реализуемых одинаково, независимо от элементов, которые они содержат.[x]. Универсализация требуется
Ключевые концепции
Ключевые концепции [x]. Утверждения - это булевы выражения, задающие семантические свойства класса и вводящие аксиомы и предусловия соответствующего абстрактного типа данных.[x]. Утверждения используются в предусловиях (требования, при выполнении которых программы
Ключевые концепции
Ключевые концепции [x]. Обработка исключений - это механизм, позволяющий справиться с неожиданными условиями, возникшими в период выполнения.[x]. Отказ - это невозможность во время выполнения программы выполнить свой контракт.[x]. Программа получает исключение в результате:
Ключевые концепции
Ключевые концепции [x]. Внешние программы доступны через хорошо определенный интерфейс.[x]. Объектная технология может служить в качестве механизма упаковки наследуемого ПО.[x]. Подпрограммы не могут модифицировать свои аргументы, хотя они могут изменять объекты,
Ключевые концепции
Ключевые концепции [x]. С помощью наследования можно определять новые классы как расширение, специализацию и комбинацию ранее определенных классов.[x]. Класс, наследующий другому классу, называется его наследником, а исходный класс - его родителем. Распространенные на
Ключевые концепции
Ключевые концепции [x]. Подход к конструированию ПО, подобный конструированию из кубиков, требует возможности объединения нескольких абстракций в одну. Это достигается благодаря множественному наследованию.[x]. В самых простых и наиболее общих случаях множественного
Ключевые концепции
Ключевые концепции [x]. К инварианту класса автоматически добавляются инварианты его родителей.[x]. В подходе Проектирования по Контракту наследование, переопределение и динамическое связывание приводят к идее субподрядов.[x]. Повторное объявление подпрограммы
Ключевые концепции
Ключевые концепции [x]. Статическая типизация - залог надежности, читабельности и эффективности.[x]. Чтобы быть реалистичной, статической типизации требуется совместное применение механизмов: утверждений, множественного наследования, попытки присваивания, ограниченной и
Ключевые концепции
Ключевые концепции [x]. При любом подходе к конструированию ПО возникает проблема работы с глобальными объектами, совместно используемыми компонентами разных модулей, и инициализируемыми в период выполнения, когда какой-либо из компонентов первым к ним обратился.[x].