![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Почему не работает raise?
nester © (2004-02-28 16:03:00)Пишу так
FReasonPhrase:= 'xxxx';
....
raise Exception.Create(e_inout, FReasonPhrase);
Сообщение вылетает нормально, но в описании ошибки пустая строка, а должна быть FReasonPhrase. Модуль err, скачаный отсюда же пару часов назад подключил.
Yury Sidorov (2004-02-29 14:18:00) [1]Сообщение типа Project Loader.exe raised exception with message "..." выдает стандартный обработчик исключений.
Чтобы сообщение было нормальным нужно его переопределить. Вот так он определен в модуле err.pas:
//...
procedure ExceptHandler(ExceptObject: TObject; ExceptAddr: Pointer); far;
begin
ShowException(ExceptObject, ExceptAddr);
Halt(1);
end;
//...
ExceptProc := @ExceptHandler;
//...
nester (2004-02-28 23:29:00) [2]Вот и я думаю, чем тогда моя реализация отличается от ответа в факе. Спасибо что ответили, но похоже я тормоз редкий, у меня так ниче и не получилось. Давайте я объясню как понял а вы меня поправте.
Во первых у меня ниче не виснет, raise срабатывает без проблемм, все в порядке но...
Системное сообщение не выдает мою строку.
Вот примерно так
raise Exception.Create(e_inout, 'cant load');
на это мне выводится сообщение типа Project Loader.exe raised exception with message '' ...
А должен вместо '' выводить 'cant load'.
в try except его засовывать и потом на On ловить нужный эксепшн и делать MsgOk нужный както ...
Я понимаю что в этом случае прога вывалится, но так и надо.
К тому же в отладке удобно.
Теперь как я понял из фака нужно это сделать.
Вопервых в директиве {$IFNDEF KOL_MCK} объявить mckCtrls, во вторых за ее приделами добвать err.
Это все? или я чего недопонял? или я вообще тормоз на другом повороте?
Gandalf (2004-02-28 22:57:00) [3]Обработка исключений к mck не имеет ни какого отношения... это все KOL
nester (2004-02-28 22:39:00) [4]Вы говорите про mckCtrls?
Но я не использую mck ....
Gandalf (2004-02-28 16:33:00) [5]FAQ!!! http://kol.mastak.ru/FAQ.htm#29