Если существует несколько обработчиков особой ситуации, какой будет вызван?
Верна ли следующая программа?
class A { int _i; public: A(int i) { _i = i; } ~A() { printf("%d ",_i); } }; int main() { A a(-1); { A a(0); A a1(1); throw "Error executed."; A a2(2); } A a1(4); return 0; }
Что обозначает запись
typedef void (*terminate_handler)();
?
void
 
typedef
 
Как будет работать такой блок:
try { ... } catch (...) { }
Что собой представляет исключительная ситуация?
В чем смысл механизма исключительных ситуаций?
Что произойдет, если при возникновении особой ситуации блок
try
не будет обнаружен в данной функции?
try
будет продолжен в вызывающей функции и т.д. по стеку 
Есть ли ошибка в следующем коде?
try { } catch (a) { } catch (b) { } catch (...) { } catch (c) { } catch (d){ }
catch
не может быть несколько 
catch(...)
ошибочен 
catch(...)
должен стоять последним 
Cколько параметров может принимать
catch
Каким способом функция может вернуть ошибку?
Какая функция вызывается при аварийном завершении программы?
exit();
 
terminate();
 
close();
 
Что произойдет, если особая ситуация возникнет в конструкторе объекта?
Перечислите средства С++, позволяющие избежать ошибок:
Где может встречаться блок
try-catch
?
main
 
main
 
Укажите поток вывода сообщений об ошибках:
cout
 
cerr
 
throw
 
Выполнится ли код, содержащийся в блоке
try { }
, если никакой ошибки не произошло?
Если происходит ошибка при выполнении функции
new
, то
memoryexception
 
Исключительная ситуация в деструкторе
try catch
 
Какой результат будет у следующего выражения?
#include <iostream.h> short x = 4, i = 0; int fun1() { if (i == 0) throw 2; } int fun2() { --x; fun1(); x++; } int main() { try { fun2(); } catch (int) { cout << "Exception "; } cout << x << " " << i;
Exception
 
Exception 4 0
 
Exception 3 0
 
4 0
 
Какой результат будет у следующего выражения?
#include <iostream.h> short x = 10, i = 5; fun1() { if (i == 5) throw 2; } fun2() { --x; fun1(); x++; } int main() { try { fun2(); } catch (int) { cout << "Exception "; } cout << x << " " << i; }
Exception
 
Exception 9 5
 
Exception 10 5
 
9 5
 
Какой результат будет у следующего выражения?
#include <iostream.h> short x = 11, i = 6; void fun1() { if (i == (x-4)) throw 2; } void fun2() { --x; fun1(); x++; } int main() { try { fun2(); } catch (int) { cout << "Exception "; } cout << x << " " << i; }
Exception
 
Exception 9 6
 
Exception 10 6
 
10 6
 
Что производит эта программа?
#include <fstream> #include <vector> #include <stack> using namespace std: int main(){ ifstream in ("inpnum"); stack <int. vector<int> > s; int x; while ( in >> x. !in.eof()) s.push(x); while (!s.empty()){ X = s.top(); cout << x << " "; s.pop(); return 0; } }
Для чего предназначена следующая программа и верна ли она:
#include <iostream> #include <fstream> #include <vector> #include <stack> using namespace std; int main() { ifstream in ("inpnum"); stack <int, vector<int> > s; int x; while (in >> x, !in.eof()) s.push(x); while (! s.empty()) { x = s.top(); cout << x << " "; s.pop(); } }
Какая строка данного кода производит возврат элемента по указателю?
#define SIZE 100 int Stack[SIZE]; int SP; void lnit(){ SP = - 1 ; } void Push(int val) { Stack[ ++SP]=val; } int Рор() { if (SP < О ) return(O); return ( Stack[SP--]); }
В конструкторе класса
class A { public: A() { ptr = new char[size]; Init(); } ~A() { if (ptr) delete[] ptr; } char* ptr; }; произошла исключительная ситуация. Будет ли потеряна память при откате по стеку?
ptr
и тогда делать выводы 
A
 
Класс
A
имеет следующее определение:class A { int _i; public: A(int i){ _i = i; } ~A(){ printf("%d ",_i);} }; Что будет выведено в результате выполнения следующего кода:{ A a(-1); { A a(0); A a1(1); throw "Error executed."; A a2(2); } A a1(4); }
"A a(0);"
 
4 2 1 0 -1
 
1 0 -1
 
1 0 4 -1
 
Могут ли блоки
try-catch
быть вложенными?
Имеются следующие обработчики ошибок:
try {} catch (a) {код 1} catch (b) {код 2} catch (с) {код 3} catch (d) {код 4} catch (d) {код 5} Если возникла особая ситуация типаd
, какой обработчик будет вызван?
catch (d){код 4}
 
catch (d){код 5}
 
catch (d){код 4}
и catch (d){код 5}
 
Имеются следующие обработчики ошибок:
try {} catch (a){код 1} catch (b){код 2} catch (с){код 3} catch (d){код 4} catch (...){код 5} Если возникла особая ситуация типаd
, какой обработчик будет вызван?
catch (d){код 4}
 
catch (d){код 5}
 
catch (d){код 4}
и catch (...){код 5}
 
Имеются следующие обработчики ошибок:
try {} catch (a){код 1} catch (b){код 2} catch (с){код 3} catch (d){код 4} catch (...){код 5} Если возникла особая ситуация типаb
, какой обработчик будет вызван?
catch (b){код 2}
 
catch (...){код 5}
 
catch (b){код 2}
и catch (...){код 5}
 
Какая функция будет первой вызвана, если особая ситуация запущена и не перехвачена?
unexpected()
 
terminate()
 
abort()
 
Какая функция будет первой вызвана, если функция запустила особую ситуацию, не указанную в ее описании
unexpected()
 
terminate()
 
abort()
 
Какая функция вызывается для нормального завершения программы?
terminate()
 
abort()
 
exit()
 
Какой оператор отслеживает исключительную ситуацию?
catch
 
try
 
throw
 
Какой оператор генерирует исключительную ситуацию?
catch
 
try
 
throw
 
Какой оператор обрабатывает исключительную ситуацию?
catch
 
try
 
throw