Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Узнать программно имя unit'a


DelphiLexx ©   (2007-02-05 10:31:00) 

В свой проект хочу внедрить систему оповещения разработчика о возникших ошибках программы.
Делаю я это так: в
[code=delphi]
except
end;
[/code]
размещаю процедуру которая отображает окно с сообщением о том, что в проге возникла ошибка и её возможность отправить разработку. Если пользователь нажмет отправить, то отправляется заархивированный лог файл. Хотелось бы сделать так, чтобы в тексте ошибки содержался имя  unit'a и номер строки, где возникла эта ошибка.
Так вот, есть ли возможность сделать это программно?


umbra   (2007-02-05 16:34:00) [1]

не знаю, пишет ли он название модуля, но для некоммерческого использования бесплатен
http://www.madshi.net/madExceptDescription.htm


Loginov Dmitry   (2007-02-05 16:19:00) [2]

Так мобильник - вещь-то нужная. А вот платить за всякий вздор - не по-русски :)))


Германн   (2007-02-05 16:14:00) [3]


> Loginov Dmitry ©   (05.02.07 16:01) [7]

К слову - II   :)
Сколько стоит твой мобильник? И сколько ты тратишь на его рюшечки ежемесячно?


Loginov Dmitry   (2007-02-05 16:01:00) [4]

к слову :)

EurekaLog 5.x - Professional Company License 9547.09 руб.
EurekaLog 5.x - Professional Single License 3161.08 руб.
EurekaLog 5.x - Enterprise Single License 4757.58 руб.
EurekaLog 5.x - Enterprise Company License 14336.60 руб.


Германн   (2007-02-05 15:50:00) [5]

А зачем городить свой огород? Не лучше ли купить EurekaLog?


Loginov Dmitry   (2007-02-05 15:45:00) [6]

А если по теме, то следует вешать свой обработчик исключений (Application.OnException), а там уж и в лог и все что хочешь. Ну и неплохо бы было, если б в каждой процедуре, где может произойти ошибка, стояло примерно следующее:

procedure MyProc();
begin
 try

 except
   on E: Exception do
     raise Exception.Create('procedure MyProc -> ' + E.Message)
 end;
end;

Хоть и геморно, но получше всяких там Ассертов. И пользователю не грех такое показать.


tesseract   (2007-02-05 14:57:00) [7]


> Так Assert предназначен для разработчиков. В релизах эту
> хрень отключают.


Тебе экран, с сообщением об ошибке 1с выслать ? :-)


Игорь Шевченко   (2007-02-05 14:48:00) [8]

Loginov Dmitry ©   (05.02.07 11:23) [2]

Воля разработчика - закон. Захочет имя юнита - не будет отключать


Loginov Dmitry   (2007-02-05 11:23:00) [9]

> Assert пришедший из С должен помочь.


Так Assert предназначен для разработчиков. В релизах эту хрень отключают.


tesseract   (2007-02-05 10:34:00) [10]


> Так вот, есть ли возможность сделать это программно?


Assert пришедший из С должен помочь.

http://www.citforum.ru/operating_systems/manpages/ASSERT.3.shtml


Наверх

Титульная страница Поиск, карта сайта Написать письмо