
Сообщение от
fenix117
Приведите пожалуйста пример, где было бы видно как писать конструктор в классе (инициализация полями класса) используя исключения и нужны ли вообще исключения в конструкторе, если да, как тогда должна вести себя программа в случае некорректных данных.
Используется конструкция с try/catch. Например,
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| struct S
{
S( const char *s )
try : p( new char[ std::strlen( s ) + 1 ] )
{
std::ctrcpy( p, s );
}
catch ( const std::bad_alloc & )
{
// некоторый код
}
private:
char *p;
}; |
|
Писал по памяти, но это близко к истине. Как должна вести себя программа? Э/то уже на ваше усмотрение! Как вы сделаете, так и будет вести себя, начиная от простого завершения работы программы в случае исключения, то продолжения работы программы с игнорированием иселючения.