Перечислите все исключения, которые могут быть сгенерированы в функции f() из параграфа Е.1
От вообщем примерчик что в книге:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <iostream> using std::cout; using std::endl; void f(vector<X>& v, const X& g) { v[2]=g;//X-ое присваивание может генерировать исключение v.push_back(g);//аллокатор у vector<X> может генерировать исключение sort(v.begin(),v.end());//Х-ая операция < может генерировать исключение vector<X>u= v;//X-ый копирующий конструктор может генерировать исключение //... //и здесь уничтожается - нужно гарантировать, что X-ый деструктор сработает //коректно } int main() { return 0; } |
Ну я могу еще придумать например может быть сгенерировано исключение out_of_range если мы допустим обратимся к элементу вектор через функцию v.at(10); допустим как то так, ну тут вектор полюбом видимо в правильном состоянии останется. Ладно не будем гадать достаточно тех примеров что есть.
[youtube]https://www.youtube.com/watch?v=KeoiyHdt1ng[/youtube]