Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > exception


Автор: LastAngel 5.8.2008, 15:58
Если ты запускаешь программу из компилятора то сначала при ошибке выводится стандартное исключение, а после этого только то, которое написал ты. При запуске программы *.exe-файла выведется только твоё исключение. Такой вариант очень неудобен при отладке, кто нибудь знает как заставить компилятор пропускать стандартные исключение, и не завершать работу наткнувшись на них.

Код

int func(int i, int j)
{
  if((i == 0) || (j == 0))
  {
    throw Exception("!!!"); // при отладке вылетит тут
  }
  else
  {
    return i * j;
  }
}

void __fastcall TfrmMain::ButtonTestClick(TObject *Sender)
{
  try
  {
    memo->Lines->Add(func(2,0));
  }
  catch(Exception &exception)
  {
    memo->Lines->Add("Ахтунг");
  }
}

Даж такой простой кусок кода не протестишь на восстановление после ошибки.

Автор: 586 5.8.2008, 17:46
Цитата(LastAngel @  5.8.2008,  16:58 Найти цитируемый пост)
Даж такой простой кусок кода не протестишь на восстановление после ошибки. 

Клавишу F7, F8 или F9 не пробывал нажимать? smile 

Отключается это в настройках отладчика:
Tools -> Debugger Options -> Language Exceptions -> Stop on C++ exceptions.
Tools -> Debugger Options -> Language Exceptions -> Stop on Delphi exceptions.

Автор: LastAngel 6.8.2008, 11:15
Цитата(586 @ 5.8.2008,  17:46)
Клавишу F7, F8 или F9 не пробывал нажимать? smile 

эт не вариант.
Цитата

Отключается это в настройках отладчика:

за это спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)