try{
DivByZ(1,0); //деление на ноль
}
catch(...){
cout<<"Dive by zero!";
}
Почему это не работает?
Если в отладчике, то не пропускает. Сгенерированный экзешник виснит.
А в VC++ все работает на ура.
Что я делаю не так???
Здравствуйте, hardsky, Вы писали:
H>H> cout<<"Dive by zero!";
H>
Ныряешь к нулю?
Здравствуйте, Курилка, Вы писали:
К>Здравствуйте, hardsky, Вы писали:
H>>H>> cout<<"Dive by zero!";
H>>
К>Ныряешь к нулю?
Угу
H>H> try{
H> DivByZ(1,0); //деление на ноль
H> }
H> catch(...){
H> cout<<"Dive by zero!";
H> }
H>
а так ?
__try{
H> DivByZ(1,0); //деление на ноль
H> }
H> __exept{
H> cout<<"Dive by zero!";
H> }
Здравствуйте, hardsky, Вы писали:
H>Что я делаю не так???
По стандарту С++ деление на ноль не обрабатывается механизмом обработки исключений.
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Здравствуйте, hardsky, Вы писали:
H>H> try{
H> DivByZ(1,0); //деление на ноль
H> }
H> catch(...){
H> cout<<"Dive by zero!";
H> }
H>
H>Почему это не работает?
H>Если в отладчике, то не пропускает. Сгенерированный экзешник виснит.
H>А в VC++ все работает на ура.
H>Что я делаю не так???
Непонятно почему виснет экзешник — в билдере такие try...catch нормально работают, в том числе при делении на 0. А где именно оно виснет?
Если запускать из-под отладчика сначала получите сообщение от него, а потом отработает Ваш catch. Если просто запустить экзешник, то только catch. Если мешает билдерное сообщение, см. Tools->Debugger Options.