Практикум по объектно-ориентированному программированию на базе языка с++ Учебно-методическое пособие



Pdf көрінісі
бет29/44
Дата21.02.2024
өлшемі0.49 Mb.
#492719
түріПрактикум
1   ...   25   26   27   28   29   30   31   32   ...   44
ООП С

Раскручиванием стека называется процесс освобождения памяти 
из-под локальных переменных и возврата управления вызывающей функ-
ции. Когда функция завершается, происходит естественное раскручива-
ние стека. Тот же самый механизм используется и при обработке исклю-
чений. 
Обработчик считается найденным, если тип объекта, указанного 
после throw
 тот же, что и указанный в параметре catch (параметр может быть запи-
сан в форме Тconst TT & или const T &, где Т– тип исключения); 
 является производным от указанного в параметре catch (если насле-
дование производилось с ключом доступа public); 
является указателем, который может быть преобразован по стандарт-
ным правилам преобразования указателей к типу указателя в пара-
метре catch
Таким образом, обработчики производных классов следует разме-
щать до обработчиков базовых, поскольку в противном случае им нико-
гда не будет передано управление. Обработчик указателя типа void авто-
матически скрывает указатель любого другого типа, поэтому его также 
следует размещать после обработчиков указателей конкретного типа.
Классы исключений. Средствами С++ можно генерировать ис-
ключения любого встроенного типа, а также создавать специальные 
классы исключений и использовать в throw либо объекты этих классов, 
либо анонимные экземпляры. Использование собственных классов ис-
ключений предпочтительнее применения стандартных типов данных. 
class MathError // базовый класс обработки ошибок 

virtual void ErrorProc(){…} // обработка ошибки 
};
class Overflow : public MathError // класс ошибки переполнения 
 
 
52 
{
virtual void ErrorProc(){…} // обработка ошибки 
};
class ZeroDevide : public MathError // класс ошибки деление на 0 
{
virtual void ErrorProc(){…} // обработка ошибки 
}; 


Достарыңызбен бөлісу:
1   ...   25   26   27   28   29   30   31   32   ...   44




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет