Объектно-ориентированное программирование: учебное пособие / В. Н. Казагачев.

iocondition eof(argv[iJ); throw(eof); } catch(const char * ) { . . . } catch(io_condition &x) { . . . } Ошибочным будет перечисление обработчиков в порядке, который предотвращает их вызов. Пример. cathc(void *) // будет соответствовать любой char * catch(char*) // catch(BaseTypeError&) // будет вызываться всегда для DerivedTypeError catch(DerivedTypeError&) Обработчики Синтаксически обработчик имеет следующую форму: catch (формальный аргумент) составной оператор Catch выглядит подобно объявлению функции с одним параметром без возвращаемого типа. catch (char ^message) { cerr « message « endl; exit(l); } catch ( . . . ) { / / действие, которое нужно приянть по умолчанию, cerr « “ That’s all folks” « andl; abort(); } СпецшЬикаиия исключения Синтаксически спецификация исключения представляет собой части объявления функции и имеет форму заголовок функции throw (список типов) Список типов - это список типов, которые может иметь выражение throw внутри функции. Если этот список пуст, компилятор может предположить, что непосредственно или косвенно, throw не будет выполняться функцией. voidfooQ throw(int, overJlow); void noex(int i) throwQ; TerminateQ И unexpectedQ

RkJQdWJsaXNoZXIy MTExODQxMg==