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

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.042 c
11-1093507527
ssk
2004-08-26 12:05
2005.03.27
На форме в DLL не обрабатываются кнопки по умолчанию


3-1109791777
Arazel
2005-03-02 22:29
2005.03.27
Мне например нравится VarChar иза того что он обрезает


1-1110880929
C@N
2005-03-15 13:02
2005.03.27
мож кто знает как можно ЗДЕЛАТЬ обои в ListView


4-1108312250
Алексей
2005-02-13 19:30
2005.03.27
Не получается, отловить сообщения комбобокса, переполнение стека


3-1109679828
Valeriya
2005-03-01 15:23
2005.03.27
Drop table





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский