Короче обрисовываю проблему подробно:
Есть класс Bolvan:
[code]
class Bolvan {
private:
char* device;
/*И т.д.*/
protected:
int sg_fd;
public:
struct FDError {
char* message;
FDError (char* p) { message = p; }
};
Bolvan (const char* io_device);
/*и т.д.*/
};
[/code]
У этого класса Bolvan усть конструктор:
[code]
Bolvan::Bolvan (const char* io_device)
{
sg_fd = open (io_device, O_RDONLY);
if (sg_fd < 0) {
char *msg;
sprintf (msg, "Unable to open device %s\n", io_device);
#ifdef DEBUG
sprintf (msg, "open (io_device, O_RDONLY) failed. \n Maybe device name is not valid.\n Check open() call in bolvan.cpp\n");
#endif
throw Bolvan::FDError (msg);
}
/*И т.д.*/
};
[/code]
В драйвере программы:
[code]
Bolvan *CB;
try {
CB = new Bolvan ("/dev/hdc");
}
catch (Bolvan::FDError) {
delete CB;
};
[/code]
Проблема: После обработки исключения возникает Segmentation fault. причем даже если я сделаю просто
[code]
catch (...) {
}
[/code]
То все равно возникает SF. В чем фигня? Причем все, что внутри catch выполняется (проверял дебаггером), а затем возникает SF. Самая проблема, что на одном форуме один челове выложил пример с исключением, котолрый у него РАБОТАЛ. Я этот пример компилю, у меня не работает. Может g++ обновить? У меня g++ 3.2
Помогите пожалуйста.
Ответ на:
комментарий
от PETER
Ответ на:
комментарий
от PETER
Ответ на:
комментарий
от dilmah
Ответ на:
комментарий
от PETER
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум Снови исключения (2003)
- Форум Исключения в конструкторе (2003)
- Форум Хочу всеядный класс исключений, который не порождает сам исключения :) (2019)
- Форум Драйвер чтения и записи (2013)
- Форум Исключения (2003)
- Форум Не работает блюр на верхней панели js (2025)
- Форум Исключения Timeshift (2025)
- Форум Amavisd Исключения (2019)
- Форум Проблемы исключений (2021)
- Форум Библиотека исключений (2012)