Форум: Форум C++Разное
Новые темы: 00
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: обработка ошибок
 
 автор: newcatx   (14.02.2007 в 17:10)   письмо автору
 
 

есть код:
#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;
}

вопрос: как используя только средства языка перехватить и обработать ошибку
дайте плиз хоть ссылку, где глубоко копается обработка исключений в С++, буду очень благодарен

  Ответить  
 
 автор: Фитч   (14.02.2007 в 17:46)   письмо автору
 
   для: 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?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования