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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AKE
11 / 11 / 0
Регистрация: 09.05.2010
Сообщений: 384
#1

Уведомление об ошибке в функции... - C++

03.08.2010, 13:51. Просмотров 592. Ответов 4
Метки нет (Все метки)

Есть функция которая в процессе выполнения получает значение t, если (t < 0) значения нет. Как уведомить об этом пользователя функции? Если сделать доп. функцию проверки, то вычисления будут проводится дважды...

C++
1
2
3
4
5
6
T3DPoint Ray_And_Plane_Intersection(TRay Ray, TPlane Plane)
{
 float t = (-Plane.A*Ray.StartPoint.X-Plane.B*Ray.StartPoint.Y-Plane.C*Ray.StartPoint.Z-Plane.D)/(Ray.Direction.X*Plane.A + Ray.Direction.Y*Plane.B + Ray.Direction.Z*Plane.C);
 if (t < 0)
  ...
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.08.2010, 13:51     Уведомление об ошибке в функции...
Посмотрите здесь:

C++ Сообщение о ошибке при заполнении массива
Почему сообщение о фатальном ошибке предпочтительно ? C++
C++ А КАК получить более развернутую информацию об ошибке
C++ Создать сообщение об ошибке
Помощь в ошибке (Вычислить) C++
C++ Правильное завершение потока при фатальной ошибке
C++ Отладчик при ошибке в программе (не Debug)
C++ Неиспользование возвращаемого значения не ведёт к ошибке
Синхронизация потоков - уведомление о событии C++
C++ Напомните, что это за сообщение об ошибке
Предусмотрение вывода информации об ошибке в программе C++
проверка, сообщения об ошибке C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CheshireCat
Эксперт С++
2910 / 1238 / 78
Регистрация: 27.05.2008
Сообщений: 3,321
03.08.2010, 13:53     Уведомление об ошибке в функции... #2
Стандартный способ - возбуждать исключение в функции.
AKE
11 / 11 / 0
Регистрация: 09.05.2010
Сообщений: 384
03.08.2010, 13:55  [ТС]     Уведомление об ошибке в функции... #3
CheshireCat, а можно пример, пожалуйста?
Nameless One
Эксперт С++
 Аватар для Nameless One
5760 / 3409 / 255
Регистрация: 08.02.2010
Сообщений: 7,410
03.08.2010, 14:08     Уведомление об ошибке в функции... #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdexcept>
//...
T3DPoint Ray_And_Plane_Intersection(TRay Ray, TPlane Plane)
{
 float t = (-Plane.A*Ray.StartPoint.X-Plane.B*Ray.StartPoint.Y-Plane.C*Ray.StartPoint.Z-Plane.D)/(Ray.Direction.X*Plane.A + Ray.Direction.Y*Plane.B + Ray.Direction.Z*Plane.C);
 if (t < 0)
  throw(std::runtime_error("Error: float t is negative")); //Наше исключение
//...Дальнейший код
}
 
int main()
{
    try
    {
    //...Код, который может возбуждать исключения
    // в том числе и вызов нашей функции
    }
    catch(std::exception& e)
    {
         std::cerr << e.what() << std::endl;
         return EXIT_FAILURE;
    }
    return EXIT_SUCCESS;
}
AKE
11 / 11 / 0
Регистрация: 09.05.2010
Сообщений: 384
03.08.2010, 14:44  [ТС]     Уведомление об ошибке в функции... #5
Nameless One, спасибо
Yandex
Объявления
03.08.2010, 14:44     Уведомление об ошибке в функции...
Ответ Создать тему
Опции темы

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