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

Вниз

Обработка исключительных ситуаций   Найти похожие ветки 

 
Ozone ©   (2005-03-15 13:17) [0]

Добрый день!

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

Есть задача: вести лог-файл ошибок возникших во время выполнения программы. Причем, лог должен соодержать как имя класса, так и имя метода где это исключение было сгенерировано.

Написание простого класса с классовым методом для перекрытия Application.OnException не дало нужных мне результатов.

Пока делаю так - on E: Exception do raise Exception.Create(E.Message + Method_Name), но кажется, что это не есть правильно и существует более рациональное решение.

Вот код класса:

Error = class
   class procedure ErrorCatch(Sender: TObject; E: Exception);
end;

class procedure Error.ErrorCatch(Sender: TObject; E: Exception);
var
  F: TextFile;
begin
    beep;
    AssignFile(F,"C:\test.log");
    {$I-} Append(F); {$I+}
    if IOResult <> 0 then ReWrite(F);
    Writeln(F,Exc.Message + Sender.ClassName);
    CloseFile(F);
end;


 
VMcL ©   (2005-03-15 14:46) [1]

>>Ozone ©   (15.03.05 13:17)

Assert подойдёт?


 
Erik1 ©   (2005-03-15 15:53) [2]

Придется подключать дополнительную библиотеку JCL называется. Там есть модуль для получения нетолько номера строки на которой произошло исключение, но и стек вызово в тексторовм виде и строка на которой произошло исключение. Только надо после инсталяции библиотеки в мену projects поставить галочку на "Insert JCL debug data".


 
Ozone ©   (2005-03-16 05:54) [3]

> [2] Erik1 ©   (15.03.05 15:53)

А как модуль называется не помшишь? Может есть документация по этому поводу?


 
Ozone ©   (2005-03-16 06:36) [4]

> [1] VMcL ©   (15.03.05 14:46)

Нет, я думаю.


 
Ozone ©   (2005-03-16 10:29) [5]

Поставил JCL и нашел функцию:

JclLastExceptStackListToStrings

Все работает. Спасибо.

Возник вопрос - есть ли более-менее полное описание этой библиотеки (хотя бы что касается Debug)?


 
Ozone ©   (2005-03-16 10:43) [6]

Чё т прет меня сегодня... там же хелп есть :)


 
TUser ©   (2005-03-16 12:28) [7]

JclDebug.pas


 
Ozone ©   (2005-03-16 14:39) [8]

>  [7] TUser ©   (16.03.05 12:28)
Да, спасибо. JclLastExceptStackListToStrings как раз от туда.


 
Erik1 ©   (2005-03-17 12:22) [9]

А пример посмотреть, религия непозволяет? jcl\examples\vcl\debug\framestrack\FramesTrackExample.dpr



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

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

Наверх




Память: 0.48 MB
Время: 0.026 c
6-1106728778
ArchValentin
2005-01-26 11:39
2005.03.27
Глупый вопрос про ServerSocket...


1-1110547461
Zilog
2005-03-11 16:24
2005.03.27
Можно ли писать приложения для Win CE .Net в среде Dlelphi 2005?


1-1110877169
Catalyst
2005-03-15 11:59
2005.03.27
Помогите со строчкой? пишет ошибку если стринг >255


3-1109145863
Lamersss
2005-02-23 11:04
2005.03.27
как гарантировано записать данные в таблицу???


11-1093308217
Ripper
2004-08-24 04:43
2005.03.27
Узнать выделеный элемент TreeView