Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];

Вниз

Как перехватывать обработчики ошибок?   Найти похожие ветки 

 
Helg   (2002-07-28 09:39) [0]

Подскажите, как перехватывать ошибки. Такая конструкция почему-то не работает:

procedure ErrorsMs(ErrorCode:Integer;ErrorAdr:Pointer);
begin
ErrMess("Error "+IntToStr(ErrorCode)); // процедура вывода сообщения
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
ErrorProc:=@ErrorsMs;
...
end;


 
object pascal   (2002-07-28 11:17) [1]

В принципе она работает.

Из help"a:
The ErrorProc variable is retained primarily for compatibility with older Pascal code.

На всякий случай переведу:
Переменная ErrorProc оставлена главным образом для совместимости со старым паскалевским кодом.

Она вызывается из ф-и Error (system.pas) и должна содержать возбуждение исключения, чтобы предотвратить дальнейший ход этой процедуры (реализующий старую обработку ошибок).

И так как это артефакт старого паскаля, через неё проходят далеко не все ошибки. Например:

var a, b: Integer;

procedure TForm1.FormCreate(Sender: TObject);
var f: TextFile;
begin
ErrorProc := @MyErrorHandler;

WriteLn(f, 1); // Пройдёт через ErrorProc

a := 0;
b := 1 mod a; // Не пройдёт через ErrorProc
end;


 
Helg   (2002-07-28 11:28) [2]

Ага, ясно. А как же быть? Я пишу программу для одного клиента, он постоянно подключен к Интернету. Мне надо, чтобы все сообщения об ошибках автоматом летели ко мне в ящик. С Интернетом проблем нет, а как все-таки перехватывать?


 
TTCustomDelphiMaster   (2002-07-28 11:34) [3]

procedure TForm1.AppException(Sender: TObject; E: Exception);
begin
ShowMessage("Error with "+Sender.ClassName+" "+E.Message);
ShowException(ExceptObject, ExceptAddr);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c: double;
begin
Application.OnException := AppException;
a:=0;
b:=1;
c:=b/a;
ShowMessage(Floattostr(c));
end;


 
DAO   (2002-07-28 13:23) [4]

Удалено модератором



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

Форум: "Основная";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.006 c
1-24119
eruc
2002-07-26 00:59
2002.08.08
GDI Objects


6-24148
nedden
2002-05-28 10:32
2002.08.08
Протокол Hotmail


1-24110
nikolo
2002-07-26 13:29
2002.08.08
Как из Delphi приконектиться к MS SQL Server?


14-24220
Anatoly Shkodin
2002-07-14 11:35
2002.08.08
Спонсор-рекламодатель


1-24038
zetta
2002-07-25 14:51
2002.08.08
а можно ли так:





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский