Форум: "Основная";
Текущий архив: 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