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

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

Методы борьбы с ошибками [D7, WinXP]


Николай ©   (2004-10-28 16:21:00) 

Привет!
Хочу обратиться к Вам за помощью - может посоветуете решение... Буду также благодарен за ссылки на ресурсы, где, возможно, данная проблема обсуждалась.
Постановка задачи: Ставим первый вариант прототипа разработанной программы заказчику для опытной эксплуатации. Естественно, глюков еще может появляться очень много. Заказчики - люди неквалифицированные, в программировании неискушенные. Я встречался с определенными механизмами, носам их не реализовывал и как они могут делать - не представляю. Например - у заказчика заглючила программа, ошибка критическая, вылазит окошко с предложением (к примеру) отослать данные об ошибке разработчику. Заазчик соглашается и данные об ошибке записываются в файл или пересылаются на емейл. Разработчик, получив их, сразу понимает в чем дело и устраняет проблему в следующей версии.
Как так можно делать? Может существуют специальные программы, компоненты или сервисы? Примеры работы таких вещей я видел, а вот чтобы реализовать или найти как :-( Буду благодарен за любую помощь.

С уважением, Николай


Erik1   (2004-10-28 17:32:00) [1]

Или вот такая ошибка:
EAccessViolation: Access violation at address 005C9999 in module 'Starvara.exe'. Read of address 00001D50
Exception occured at $005C9999 (Module "QuickRpt", Procedure "TCustomQuickRep.Preview", Unit "Quickrpt.pas", Line 4587)
 Except frame-dump:
   Frame at $0012FC8C (type: efkFinally)
     Code at $0043EA64
     Module "Controls", Procedure "TWinControl.MainWndProc", Unit "", Line 0
   Frame at $0012FC98 (type: efkAnyException, handles exception)
     Handler at $0043EA85
     Module "Controls", Procedure "TWinControl.MainWndProc", Unit "", Line 0
Конечно ее невозможно исправить и бывало по 70 ошибок в день приходило, но это отовсех пользователей.


Erik1   (2004-10-28 17:25:00) [2]

Я сделал подобную ситему, причем писмо отсылается автоматически. Использовал JCL и Indy, необходимо наличие SMTP сервера и акаунта для отсылки сообщений. Перехватываются все ошибки даже заключеные в Try except. Поэтому существует ресурс где описано какие ошибки игнорировать. Описываются 3 парапетра тип исключения, имя процедуры, модуль. Также описана структура какие ошибки надо переводить, они появляются у пользователя на экране в переведеном виде и неотсылаются по email.
Пример собщения об ошибке:
---------------------------
Computer:             HANNO
Windows User:         vvalm
OS:                   Windows XP Professional
Free Physical Memory: 88072Kb
Free Virtual Memory:  1819901Kb
Free Page Memory:     337240Kb
Module:               starvara.exe
Version:              1.2.8.147
Form Count:           3
Active Form:          Sihtgrupp[CRUD-]

EDBEngineError: Master record missing.
ORA-02291: integrity constraint (STARVARA.SGKL_KL_FK) violated - parent key not found
ORA-06512: at "STARVARA.STP_SG", line 81
General SQL error.
ORA-06512: at "STARVARA.SPC_SIHTGRUPP", line 14
ORA-06512: at line 1
Exception occured at $004AD3A6 (Module "DBTables", Procedure "DbiError", Unit "", Line 0)
 Except frame-dump:
   Frame at $105EFF20 (type: efkFinally)
     Code at $004B941A
     Module "DBTables", Procedure "TStoredProc.ExecProc", Unit "", Line 0
   Frame at $105EFF3C (type: efkFinally)
     Code at $00676AD0
     Module "DBThread", Procedure "TProcRunThread.Exec", Unit "DBThread.pas", Line 205
   Frame at $105EFF58 (type: efkFinally)
     Code at $0067686B
     Module "DBThread", Procedure "TDBThread.Execute", Unit "DBThread.pas", Line 139
   Frame at $105EFF64 (type: efkOnException, handles exception)
     Handler at $006768C4
     Module "DBThread", Procedure "TDBThread.Execute", Unit "DBThread.pas", Line 148


Ega23   (2004-10-28 17:12:00) [3]

procedure AAA
begin
try

except on E:Exception do
 raise ('procedure AAA Error -> '+E.Message); //(Точно синтаксис не помню, а Делфи лень открывать)
end;

Application.OnException (Или у TAppEvents событие OnException)
Отписываем ошибку в лог.

Как ошибка - заказчик отсылает файл с ошибками. Всё.


Pentium133   (2004-10-28 17:04:00) [4]

На этом сайте есть статья на этут тему. Посмотрите.


cae   (2004-10-28 16:39:00) [5]

EurekaLog поможет


Digitman   (2004-10-28 16:28:00) [6]


> записываются в файл или пересылаются на емейл


т.е. именно ЭТОявл-ся для тебя проблемой ? или что ?


Наверх

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