Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.15.147.215] |
|
Сообщ.
#1
,
|
|
|
когда в программе происходит atan2(0, 0) то выскакивает сообщение в Виндоусе о том что случилось страшное.
try/cath пробовал |
Сообщ.
#2
,
|
|
|
может ты в catch, не то написал ?
try{ atan2( 0, 0 ); } catch( ... ){ // } должно работать, если глюк только во время разработки, то надо галку убрать StopOnDelphi и C++ Exception |
Сообщ.
#3
,
|
|
|
2rodion - тебе не кажется что при вычислении atan2 от таких параметров происходит деление на ноль?
|
Сообщ.
#4
,
|
|||
|
|
Сообщ.
#5
,
|
|
|
Ну и что что деление на ноль. Должен же я получить исключение и затем его обработать?
try { atan2( 0, 0 ); } catch( ... ) { // }не работает (иначе бы я и не писал бы) Но может кто нибудь скажет проверь типаif (0==0) и не парься? Так ведь исключение возникает и призначениях больших х/у... короче говоря хочу убидь двух зайцев |
Сообщ.
#6
,
|
|
|
Чегой-то я не догоняю, читая MSDN:
If both parameters of atan2 are 0, the function returns 0. Так я и сделал: float a = atan2(0,0); Не обманули - получил я ноль без всяких проблем. У тебя, наверное, Windows 3.0 - поэтому и "выскакивает сообщение в Виндоусе о том что случилось страшное". |
Сообщ.
#7
,
|
|
|
Юзай __try/__except (то бишь SEH), для того, чтобы не падала прога.
Visual only... |