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

Вниз

как перекрыть exception ?   Найти похожие ветки 

 
Dysan ©   (2004-02-03 14:13) [0]

Мастера! Подсткажите как перекрыть выполнение exception
и добавить туда то что мне нужно? И вообще можно ли сделать
чтоб каждый раз не писать try и т.д.?


 
Карелин Артем ©   (2004-02-03 14:16) [1]

Application.OnException пойдет?


 
Digitman ©   (2004-02-03 14:18) [2]


> добавить туда


куда ?


> можно ли сделать
> чтоб каждый раз не писать try и т.д


в осн.код.потоке при использовании объекта Application - запросто. На то и существует событие TApplication.OnException


 
Dysan ©   (2004-02-03 14:22) [3]

про TApplication.OnException я знаю
меня интерисует вопрос как в эту процедуру добавить то что мне нужно. просто я этим никогда не пользовался. случая не было.


 
Digitman ©   (2004-02-03 14:24) [4]

а что тебе нужно ?


 
Тимохов ©   (2004-02-03 14:24) [5]

Здесь два вопроса:
1. Что мне нужно? (мы ессно не знаем, что нужно)
2. Как добавить? (брось компонент TApplicationEvents, реализуй событие OnException, вроде все)


 
Dysan ©   (2004-02-03 14:38) [6]

Ну вобщем грубо говоря
Если я напишу так

procedure TApplication.OnException
begin
открыть файл
запись кода ошибки
закрыть файл
end;

то это не правильно. а как надо я не знаю


 
Тимохов ©   (2004-02-03 14:41) [7]

Конечно не правильно...
Дельфи, к сожалению, не знает "открыть файл".
Она знает конкретные команды.
Другой вопрос как ты их написал?

Может кодом поделишься, или это тайна?


 
Тимохов ©   (2004-02-03 14:42) [8]

Блин, а это что "procedure TApplication.OnException"
Ты где это пишешь? Причем тут класс TApplication?


 
Mystic ©   (2004-02-03 14:42) [9]

> Dysan © (03.02.04 14:38) [6]

Тоже вариант. Чего неправильно?


 
Dysan ©   (2004-02-03 14:54) [10]

для мля я для примера написал "открыть файл и т.д."
чтоб не выписывать assign и т.д.

"Ты где это пишешь? Причем тут класс TApplication?" - Да нигде я это не пишу я спрашиваю как на писать? Как добавить в OnException или куда там еще, НАПРИМЕР открытие и закрытие файла. Меня не интерисует само открытие и закрытие.


 
Тимохов ©   (2004-02-03 14:56) [11]


>
> Dysan © (03.02.04 14:54) [10]

Будте внимательней.
См 5, пункт 2.
Тас все есть.
Компоненты бросать умеете?
Тогда вперед.


 
Dysan ©   (2004-02-03 14:58) [12]

Так будет правильно?

procedure TC.go;
begin
Application.OnException := Catcher;
end;

procedure TgsCatcher.Catcher;
begin
{что то}
end;
end.


 
Digitman ©   (2004-02-03 15:05) [13]


> Dysan © (03.02.04 14:58) [12]
> Так будет правильно?


неправильно.

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


 
Тимохов ©   (2004-02-03 15:07) [14]

Нет, не правильно.

Catcher должен быть таким:
procedure TGsCather.Catcher(Sender: TObject; E: Exception);

На будущее, см. модуль forms, очень полезно.


 
Тимохов ©   (2004-02-03 15:09) [15]

Согласен с 13 - в хелпе точно такой пример есть.


 
Dysan ©   (2004-02-03 15:11) [16]

да да я просто не дописал (Sender: TObject; E: Exception);


 
Тимохов ©   (2004-02-03 15:20) [17]

тогда правильно, если учесть, что где-то в другом месте (скрытом от нас) нет ошибок.


 
icWasya ©   (2004-02-03 17:57) [18]

например так

кладёшь на форму ApplicationEvents

выбираешь в инспекторе объектов
Events->OnException-> DblClick
программируешь


procedure TForm1.ApplicationEvents1Exception(Sender: TObject; E: Exception);

var
F:TextFile;
begin
AssignFile(F,"C:\Temp\AppLog.txt");
{$I-}
Append(F);
if IoResult<>0 then Rewrite(F);
if IoResult<>0 Exit;
{$I+}

WriteLN(F,"Exception :",E.ClassName );
WriteLN(F," ",E.Message );

CloseFile(F);
end;



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

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

Наверх




Память: 0.5 MB
Время: 0.022 c
1-38829
Yuri Btr
2004-02-02 20:04
2004.02.13
ManualDock


1-38868
denis24
2004-02-02 10:54
2004.02.13
как переделать компонет написанный на d4 под d5


1-38864
stas
2004-02-02 09:24
2004.02.13
Метод FreeLibrary


1-38886
yot
2004-02-04 14:02
2004.02.13
Инерпритация


3-38744
alex31
2004-01-25 12:01
2004.02.13
Проблема с запуском приложения