Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

try except end


lessi ©   (2007-07-28 16:08:00) 

У меня есть мною написанная процедура, которую я заключаю в это исключение. В ней ошибки могут возникнуть по разным причинам(файл, конвертация и прочее). Вопрос: при возникновении ошибок программа должна вылетать при наличии исключения или я что-то неправильно делаю. Код примерно следующий:
try
myproc(dd);
except
.....
end;

Как я понял при наличии ошибки, программа не будет прерываться. Может я не прав? И что мне тогда делать?


Инс   (2007-07-28 16:58:00) [1]


> У меня есть мною написанная процедура, которую я заключаю
> в это исключение.

try..except..end - это не исключение, а блок обработки исключений. А исключение - это ненормальная ситуация, требующая прервать обычное выполнение программы и перейти к его обработке. Когда в программе возникает исключение, система перехватывает его, и начинает искать обработчик. Когда находит - передает управление в него. Ключевые слова try..except..end заставляют компилятор сгенерировать такой код, который позволит системе (в случае возникновения исключения в блоке между try и except) найти в качестве обработчика код, расположенный между except и end, и передать управление туда.


> Как я понял при наличии ошибки, программа не будет прерываться.

Смотря что вы имеете в виду. В принципе - будет. Как только возникнет исключение, выполнение будет продолжено не с того места, где оно возникло, а с блока except..end.


> И что мне тогда делать?

Уберите флажок Stop on Delphi Exception в Debug Options. Тогда при запуске из под среды выполение не будет прерываться при исключении.


Наверх

Титульная страница Поиск, карта сайта Написать письмо