|
|
|
| есть код:
#include <iostream.h>
class A {
public:
virtual int get() {return 0;};
};
int main()
{
A* a=(A*)malloc(sizeof(A));
cout<<a->get();
cin.get();
return 0;
}
вопрос: как используя только средства языка перехватить и обработать ошибку
дайте плиз хоть ссылку, где глубоко копается обработка исключений в С++, буду очень благодарен | |
|
|
|
|
|
|
|
для: newcatx
(14.02.2007 в 17:10)
| | Ссылки нет, но в принципе исключения обрабатываются также, как в других языках:
/* ... */
try
{
A* a = (A*)malloc(sizeof(A));
if(!a)
{
throw 1;
}
cout << a->get() << endl;
cin.get();
}
catch(int n)
{
if(n == 1)
{
cout << "А не проинициализирован!";
}
}
catch(...)
{
cout << "Что-то случилось =-(" << endl;
}
|
Символами "..." отлавливаются любые исключения
ЗЫ:
Не хотите ли вместо malloc использовать new и delete? | |
|
|
|