Форум программистов, компьютерный форум CyberForum.ru

C++ exception - C++

Восстановить пароль Регистрация
 
Perzh
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 25
24.11.2013, 23:32     C++ exception #1
Доброго времени суток. Делал лабу, описал класс матрица в котором есть метод нахождения обратной матрицы:
C++
1
2
double det = m.det();
if(det == 0) throw new exception("Определитель равен нулю!");
Класс оформлен в отдельных файлах matrix.cpp и matrix.h. Когда в main вызываю метод inverse, исключение не перехватывается
C++
1
2
3
4
5
6
7
8
9
10
11
12
try
{
    m.read("4.txt");
 
    inverse_m = m.inverse();
 
    inverse_m.print();
}
catch(exception &e)
{
    cerr << "Error: " << e.what() << endl;
}
Почему такое может происходить?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2013, 23:32     C++ exception
Посмотрите здесь:

Unhandled exception... C++
Unhandled exception C++
exception и cerr C++
C++ exception EEFFACE
Exception C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
24.11.2013, 23:47     C++ exception #2
Цитата Сообщение от Perzh Посмотреть сообщение
det == 0
double так с нулем не сравнивают

Добавлено через 1 минуту
C++
1
if(det > -0.0000001 && det < 0.0000001)
Perzh
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 25
24.11.2013, 23:58  [ТС]     C++ exception #3
Спасибо за совет, тока дело не в этом
MrCold
851 / 749 / 71
Регистрация: 11.01.2012
Сообщений: 1,942
25.11.2013, 00:11     C++ exception #4
У вас catch исключение принимает по ссылке .
Значит new уберите :
throw new exception("Определитель равен нулю!");
Perzh
0 / 0 / 0
Регистрация: 20.01.2013
Сообщений: 25
25.11.2013, 00:15  [ТС]     C++ exception #5
Спасибо большое)
hoob
19 / 11 / 1
Регистрация: 04.11.2012
Сообщений: 89
Записей в блоге: 1
25.11.2013, 02:58     C++ exception #6
Цитата Сообщение от MrCold Посмотреть сообщение
double так с нулем не сравнивают

Добавлено через 1 минуту
C++
1
if(det > -0.0000001 && det < 0.0000001)
Что-то мне всегда казалось, что double так с нулём сравнивают:
C++
1
2
#include <float.h>
if( det == DBL_EPSILON)
Yandex
Объявления
25.11.2013, 02:58     C++ exception
Ответ Создать тему
Опции темы

Текущее время: 17:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru