сключений, могут непреднамерен

Автор admin Понедельник, 4 мая 2009 11:32

сключений, могут непреднамеренно запускать исключения из-за вызываемых ими функций (при их включении в новые версии программ с обработкой исключений). Из-за этого следующая неинформативная запись означает: «Возможно, я буду запускать исключения… а может, и нет»: void f(); Подобная неоднозначность неизбежна, чтобы не препятствовать эволюции программ. Если вы хотите указать, что функция f() не запускает исключения, задайте спецификацию с пустым списком: void f() throwO: Спецификации исключений и наследование Каждая открытая функция класса участвует в формировании контракта с пользователем; если передать ей некоторые аргументы, функция выполнит те или иные операции и/или вернет результат. Контракт должен соблюдаться и в производных классах, в противном случае нарушится основное правило «производный класс является частным случаем базового класса». Поскольку спецификации исключений являются логической частью объявления функции, они тоже должны сохраняться в иерархиях наследования. Например, если функция базового класса объявляет, что она запускает только исключения типа А, переопределение этой функции в пр


Комментарии закрыты.