Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.01;
Скачать: CL | DM;

Вниз

свой SEH   Найти похожие ветки 

 
ДжекиМайер   (2007-03-07 20:04) [0]

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

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


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


 
Германн ©   (2007-03-07 20:10) [1]


>
> ДжекиМайер   (07.03.07 20:04)
>
> на каждую строчку проги
> try
>
> ехсеpt
> messquack ("error hd");
> end;
>
> не поставить , а может можно и номер строчки пишет где ошибка?
>
> Access Violation например
>

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


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

google -> madcollection


 
Джо ©   (2007-03-07 22:40) [3]

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

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


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

google -> madcollection

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

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


 
DVM ©   (2007-03-07 23:13) [5]


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

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


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


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

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


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

так забьем,

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

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

except
end;


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


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


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


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


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


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

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


 
trubin ©   (2007-03-09 12:12) [10]

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


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

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


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

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

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-11 01:32) [13]


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

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


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

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


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

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


 
GrayFace ©   (2007-03-11 17:21) [16]

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

http://delphimaster.net/view/15-1172580809/


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

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

попробывал 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 )


 
trubin ©   (2007-03-12 15:05) [18]


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

Какую из JCL ?

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


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

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

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


 
GrayFace ©   (2007-03-12 16:53) [20]

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

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

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


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

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

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

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

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



Страницы: 1 вся ветка

Текущий архив: 2007.04.01;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.048 c
11-1153305248
DmiSb
2006-07-19 14:34
2007.04.01
Не получается через ADO открыть *.dbf


3-1168866635
Alek_1
2007-01-15 16:10
2007.04.01
Как быстрее переслать данные клиенту


15-1172928103
Sergius P
2007-03-03 16:21
2007.04.01
Подсчет трафика


1-1170938140
linox
2007-02-08 15:35
2007.04.01
Форма и панель задач


15-1173429612
antonn
2007-03-09 11:40
2007.04.01
Проблемка с руским текстом в IE