25 дек 2007, 10:07
В блоке try помещается код, который может бросать так называемые исключения (exception). Бросание исключения осуществляется с помощью оператора throw, через пробел после этого оператора следует указать бросаемый объект. Объект может быть как системного типа (например, int переменная, как в нашем случае), так и пользовательского типа (например, экземпляр класса).
Брошенное исключение может быть поймано блоком catch. Тип параметр этого блока должен совпадать по типу с брошенным объектом, иначе исключение не будет поймано. Если типы совпадают, то после бросания исключения управление перейдёт на первую команду соответствующего блока catch. В том случае, если соответствующего catch не найдено, будет произведена раскрутка стека и исключение полетит наружу из функции и при желании его можно будет поймать снаружи при помощи всё тех же конструкций try и catch.
Если исключение не было поймано нигде и вылетело наружу из главной функции (main, wmain, WinMain), то (скажем условно) оно будет поймано системой и мы будем наблюдать так называемый краш программы.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.