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

Вниз

Выключаем обработчик ошибок..   Найти похожие ветки 

 
Dr.M@$ ©   (2007-05-22 10:19) [0]

День добрый многоуважаемые коллеги!
Праблема в следуйщем: мое приложение выкидывает иногда на передний план инфу об ошибке, (например "file nod found" или типа того ) нажимаю кнопку "OK" и работаю дальше....
вопрос: ка мне отключить эти ошибки, а точнее чтом приложение неостанавливало а например все ошибки посылало бы в какой нить лог файл??


 
Сергей М. ©   (2007-05-22 10:21) [1]


> ка мне отключить эти ошибки


В общем случае никак.

Ошибка ошибке рознь.


 
Dr.M@$ ©   (2007-05-22 10:23) [2]

ну может что то есть такое спещифическое?? мне просто часто выкидывает ошибки об scaneLine !!!


 
{RASkov} ©   (2007-05-22 10:28) [3]

> [2] Dr.M@$ ©   (22.05.07 10:23)

Ну сделать прогу так, чтоб их(ошибок) не было...
VCL"овские ошибки можно ловить на Application.OnException....


 
ЮЮ ©   (2007-05-22 10:46) [4]

> нажимаю кнопку "OK" и работаю дальше....

Т.е. есть файл, нет файла - твоей программе пофиг? Она в обоих случаях работает правильно и одинаково? Ну-Ну :)

>(например "file nod found" или типа того )
Исключениz, которые можно избежать, лучше избегать. Чтобы не вываливалось "file nod found" никто не мешает проверить FileExists.


 
Dr.M@$ ©   (2007-05-22 11:09) [5]

да про файл я для примера написал....


 
Dr.M@$ ©   (2007-05-22 11:10) [6]


> VCL"овские ошибки можно ловить на Application.OnException.
> ...

лавить? тоесть узанть номер ошибки итп? а отключать?


 
Dr.M@$ ©   (2007-05-22 11:11) [7]

может есть какой нибдь чудо прификс отключающий ошибки например
{-I}   ??? :)


 
ЮЮ ©   (2007-05-22 11:12) [8]

> да про файл я для примера написал....

А я для примера ответил :) Будут конкретные примеры - заходи ещё.

P/S/ Ошибки надо исправлять в программе, а не подавлять сообщения о них.


 
Плохиш ©   (2007-05-22 11:22) [9]


> Dr.M@$ ©   (22.05.07 11:11) [7]
> может есть какой нибдь чудо прификс отключающий ошибки

Есть, называется "программист". Вот на кой ляд нужна программа, которая работает с ошибками?


 
Dr.M@$ ©   (2007-05-22 11:25) [10]

:) ясно... хотел чисто ловить и записывать все ошибки в лог файл... а получил..... :(


 
ЮЮ ©   (2007-05-22 11:31) [11]

> хотел чисто ловить и записывать все ошибки в лог файл


Нет, ты хотел "ка мне отключить эти ошибки, а точнее чтом приложение неостанавливало ". Отсюда и ответы такие :)


 
{RASkov} ©   (2007-05-22 11:32) [12]

> [6] Dr.M@$ ©   (22.05.07 11:10)
> лавить? тоесть узанть номер ошибки итп? а отключать?

А ты "нарисуй" обработчик и посмотри его параметр E: Exception...

procedure TForm1.FormCreate(Sender: TObject);
begin
 Application.OnException:=Exc;
end;

procedure TForm1.Exc(Sender: TObject; E: Exception);
begin
 ShowException(Sender, E);
end;

procedure TForm1.Button2Click(Sender: TObject);
var X,Y,Z: Integer;
begin
 X:=10; Y:=0;
 Z:=X div Y;
 Caption:=IntToStr(Z);
end;


где Exc - описана методом формы
 private
   procedure Exc(Sender: TObject; E: Exception);


Кстати, если оставить все как есть, но просто закомментировать строку в Exc:
procedure TForm1.Exc(Sender: TObject; E: Exception);
begin
 //ShowException(Sender, E);
end;

...то у тебя будут "гасится" все сообщения об VCL ошибках, что конечно не есть верно. Так как этот обработчик нужен именно для обработки исключений, а не их скрытие....

> [10] Dr.M@$ ©   (22.05.07 11:25)

Вот там же и в лог можно писать....


 
GelVit   (2007-05-22 11:39) [13]

кидаешь на форму ApplicationEvents1 и в обработчике onException

procedure TForm.ApplicationEvents1Exception(Sender: TObject; E: Exception);
var Filename: string;
   LogFile: TextFile;
begin
{подготавливает файл журнала}
Filename:= ChangeFileExt(Application.ExeName, ".log");
AssignFile (LogFile, Filename);
if FileExists(Filename) then
   Append(LogFile)     {открыть сушествующий файл}
else Rewrite(LogFile); {cоздать новый файл}
{записать файл и показать ошибку}
writeln(LogFile, DateTimeToStr(Now)+ ":" + E.Message);
Application.ShowException(E);
CloseFile(LogFile); {закрыть файл}
end;

будет писать в лог


 
Плохиш ©   (2007-05-22 11:51) [14]


> Dr.M@$ ©   (22.05.07 11:25) [10]

Программист преднозначен не только для того, чтобы натоптать какой-то код, но и для того, чтобы согласно логике программы обработать возможные исключения в момент их возникновения и сделать какую-то обработку, а для этого в делфи введена конструкция try ... except ... end, о использовании которой написано, имхо, в любой книге для чайников. Но поколение компутикос книгов/документации/справок не читает, они же не для них писаны, а для этих, которые здесь на вопросы отвечают...


 
Dr.M@$ ©   (2007-05-22 13:27) [15]

....Ну  вообщето я ошибку у себя откапал (даче 6 штук :) между каждой строчке гдн может быть ошибка вставил label. и выводил необходимый текст... вот так мы победили сырость :) ну а логи писать мне надо.... сейчас я этим займусь.. всем спасибо )


 
Anatoly Podgoretsky ©   (2007-05-22 19:21) [16]

> ЮЮ  (22.05.2007 10:46:04)  [4]

Придется дважды проверять, один раз как ты рекомендуешь, а второй раз при открытии.


 
Anatoly Podgoretsky ©   (2007-05-22 19:22) [17]

> Плохиш  (22.05.2007 11:22:09)  [9]

Но еще меньше нужна программа, которая прячет ошибки



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

Форум: "Начинающим";
Текущий архив: 2007.06.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.042 c
2-1179794600
Riply
2007-05-22 04:43
2007.06.10
Объявление variant Record.


15-1178884478
Jan1
2007-05-11 15:54
2007.06.10
subst


1-1176617592
Major Gray
2007-04-15 10:13
2007.06.10
Нестандартная реакция TPopupMenu.


2-1179588480
Flerom
2007-05-19 19:28
2007.06.10
Finddialog


2-1179413597
Dr.M@$
2007-05-17 18:53
2007.06.10
Проблема работы ASM в XP





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