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

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

свой SEH


Страницы:   1 2

ДжекиМайер ©   (2007-03-07 20:04:00) 

на каждую строчку проги
try

ехсеpt
messquack ('error hd');
end;


не поставить , а может можно и номер строчки пишет где ошибка?
Access Violation например


ДжекиМайер   (2007-03-13 00:32:00) [1]

да но передним Application.ShowException(E);
или не показываем уже сообщения

тоже ставил HookException  в начале .dpr
и в uses модуль ставил

требуется только перехватить VA, неможет быть реад врите
и выдавать сообщение (стек и коды ошибок ненужны!!!!!!)
незнаю что из исходника выкинуть чтоб остался сам хук
и процедура куда идет сработка при тяжелой ошибке
(не try except )

JCL  неканаен и много мусора(
tempmail2005@mail.ru


GrayFace   (2007-03-12 16:53:00) [2]

HookException надо делать в начале .dpr

> впрочем и юзание стандартного обработчика Application.OnException:=AppException; дает тот же результат!

Дак там же Application.Terminate стоит!


ДжекиМайер   (2007-03-12 16:31:00) [3]

JCL непрбывал , читал отзывы что от туда вобще ниче не выдрать

это пробывал http://home.earthlink.net/~akonshin/files/DebugUtils.zip


trubin   (2007-03-12 15:05:00) [4]


> посмотрел ту штуковинку

Какую из JCL ?

Покажи свое мыло, скину модуль, в который когда-то написал для работы с "той штуковиной"


ДжекиМайер   (2007-03-12 10:39:00) [5]

посмотрел ту штуковинку

попробывал D6 WIN200

procedure TForm1.FormCreate(Sender: TObject);
begin
//Application.OnException:=AppException;
DebugUtils.HookException(PrintToConsoleAndODS);


procedure TForm1.AppException(Sender: TObject; E: Exception);
begin
Application.ShowException(E);
Application.Terminate;
end;


procedure TForm1.Button1Click(Sender: TObject);
var
a:^dword;
begin
a^:=222;


никаких окон - при нажатии на кнопку - приложение как будно сделало halt;

впрочем и юзание стандартного обработчика Application.OnException:=AppException;дает тот же результат!

требуется только перехватить VA, неможет быть реад врите
и выдавать сообщение (стек и коды ошибок ненужны!!!!!!)
незнаю что из исходника выкинуть чтоб остался сам хук
и процедура куда идет сработка
при тяжелой ошибке
(не try except )


GrayFace   (2007-03-11 17:21:00) [6]

В Access Violation идет адрес ошибки. По нему без проблем востанавливается строка: Запискаешь, жмешь Ctrl+Alt+C, там Ctrl+G, вводишь адрес в форме $123456, в контекстнос меню "Show Source Line" или типа того.

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1172580809&n=3


ДжекиМайер   (2007-03-11 13:43:00) [7]

зачем пишут что этот обработчик ловит все
что не ловится секцией try-except ?


ДжекиМайер   (2007-03-11 11:28:00) [8]

нет просто заткнуть системные мессаги в проге которую надо отдать
пока я разбираюсь с Jedi Code Library со своим вариантом


Германн   (2007-03-11 01:32:00) [9]


> ДжекиМайер   (11.03.07 00:51) [12]

Тебе это нужно для "приобретения знаний и/или опыта в программировании"? Или есть реальная потребность по работе?
Если первое, то читай (справку, исходники поставляемые с Дельфи и т.д.). Если второе, то вспомни мой совет в [1].


ДжекиМайер   (2007-03-11 00:51:00) [10]

почему не ловит ?,
пока временно заткнул так

procedure TForm1.FormCreate(Sender: TObject);
Application.OnException:=ApplicationEvents1Exception;


procedure TForm1.ApplicationEvents1Exception(Sender: TObject;
 E: Exception);
showmessage('тяжелое!');
Application.Terminate;


проверяю так - ожидаю увидеть свое сообщение
var
p:^dword;
begin
p^:=3333;


но не перехватывает а показывает виндовское - память не может быть рэад


ДжекиМайер   (2007-03-09 14:46:00) [11]

спасибо гляну


trubin   (2007-03-09 12:12:00) [12]

На RSDN есть статья "Локализация ошибок в приложениях Delphi c помощью библиотеки Jedi Code Library". Я пользуюсь, достаточно удобно.


Плохиш   (2007-03-09 11:21:00) [13]


> Сергей М. ©   (09.03.07 09:21) [8]
> А чем оправдана эта "ловля блох" ?

Я знаю - отсутствием желания знакомиться со встроенным отладчиком ;-)


Сергей М.   (2007-03-09 09:21:00) [14]


> раздуется моя прога ?


А чем оправдана эта "ловля блох" ?


ДжекиМайер   (2007-03-09 09:15:00) [15]

так забьем,

а много ли памяти жрет ? и места в коде

конструкции
try

except
end;


в критических местах  (поинтеры, ввод-вывод), скажем если таких конструкций
будет 200 штук раздуется моя прога ?


Германн   (2007-03-07 23:54:00) [16]


> кроме платного ничего нет, самому своять,знать бы принцип
> ?
>

Долгая дорога в дюнах тебе :(


DVM   (2007-03-07 23:13:00) [17]


> кроме платного ничего нет, самому своять,знать бы принцип
> ?

JediVCL + FastMM4 вполне достаточно, чтобы локализовать все исключения и прочие проблемные места в программе.


ДжекиМайер   (2007-03-07 23:09:00) [18]

google -> madcollection

EurekaLog. Купи и будь счастлив!

кроме платного ничего нет, самому своять,знать бы принцип ?


Джо   (2007-03-07 22:40:00) [19]

> на каждую строчку проги
> try
>
> ехсеpt
> messquack ('error hd');
> end;
>
> не поставить

И правильно. Зачем?


Dmitrij_K   (2007-03-07 22:38:00) [20]

google -> madcollection


Страницы:   1 2

Наверх

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