Язык программирования C++ для профессионалов



     бесплатно порно всё ради пятёрки. |       

Различение особых ситуаций - часть 2


void f2(Vector& v) { try { use_vectors(); } catch (Vector::Range) { // ... } }

Здесь f2() перехватит особую ситуацию Range, возникающую в use_vectors(), а особая ситуация Size будет оставлена для f1().

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

try { // ... } catch (input_overflow) { // ... throw input_overflow(); }

Здесь input_overflow (переполнение при вводе) - имя глобального класса. Обработчики особых ситуаций могут быть вложенными:

try { // ... } catch (xxii) { try { // сложная реакция } catch (xxii) { // ошибка в процессе сложной реакции } }

Однако, такая вложенность редко бывает нужна в обычных программах, и чаще всего она является свидетельством плохого стиля.

on_load_lecture()

Дальше »

  Если Вы заметили ошибку - сообщите нам.  

Страницы:

« |

1

|

2

|

3

|

4

|

5

|

6

|

7

|

8

|

9

|

вопросы | »

|

учебники

|

для печати и PDA

Курсы | Учебные программы | Учебники | Новости | Форум | Помощь



Телефон: +7 (495) 253-9312, 253-9313, факс: +7 (495) 253-9310, email: info@intuit.ru

© 2003-2007, INTUIT.ru::Интернет-Университет Информационных Технологий - дистанционное образование




Содержание  Назад  Вперед