| AnDrakula | 
| Отправлено: 16.01.2007, 15:28 | 
 
 
 | 
  
Ученик-кочегар 
 
Группа: Участник 
Сообщений: 2 
  
  
 | 
 Добрый день!
  
Как ловить ошибку при возведении отрицательного числа в степень 0,5 например в C++Builder 5?
  
такой try-блок поймать ее не может  
  
double f, a, b; 
... 
try{ 
f = pow(a, ; 
} 
catch(...){ShowMessage("----");}
  
а описанная здесь ранее функция Power(double a, double   не находится компайлером!
 
  
такой вариант тоже на проходит:
  
double f, a, b; 
... 
try{ 
struct _exception err; 
f = pow(a, ; 
_matherr(&err); 
if (err.type == DOMAIN) 
ShowMessage("....!"); 
} 
} 
catch(...){ShowMessage("----");}
  
Заранее всем спасибо!  | 
  | 
| olegenty | 
| Отправлено: 16.01.2007, 16:23 | 
 
 
 | 
  
Ветеран 
 
Группа: Модератор 
Сообщений: 2412 
  
  
 | 
 | CODE  |   
#include <math.hpp> 
... 
try 
{ 
   double x = Power(-1, 0.5); 
} catch(...) 
{ 
   ShowMessage("Yo"); 
} 
 |   
 | 
  | 
| AnDrakula | 
| Отправлено: 16.01.2007, 16:32 | 
 
 
 | 
  
Ученик-кочегар 
 
Группа: Участник 
Сообщений: 2 
  
  
 | 
 Ух ты, спасибо!
  
Все работает!!!    | 
  |