Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.01.15;
Скачать: CL | DM;

Вниз

raise exception до Application.Run НЕ покажет сообщение.   Найти похожие ветки 

 
Кто б сомневался ©   (2016-01-17 22:10) [0]

Если строка "raise exception" указана до строки Application.Run, то исключение не сработает, если программа запущена без отладчика. Т.е. прога молча закрывается, никаких сообщений. А с отладчиком сообщение появится.  
Я не нашел упоминание об этом ньюансе в хелпе или что-то пропустил..

Это никак не изменить, спасет только ShowMessage?


begin
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);
 raise Exception.Create("Error Message");  <<<

 Application.Run;
end.


 
Кто б сомневался ©   (2016-01-17 22:12) [1]


> то исключение не сработает


Оно конечно сработает, но без сообщения юзеру.


 
Кто б сомневался ©   (2016-01-17 22:42) [2]

Разве что так сделать:

begin
 Application.Initialize;
 Application.CreateForm(TForm1, Form1);

 try

 // где то тут код с raise Exception

except
 on E: Exception do
 begin
   Application.ShowException(E);
   raise;
 end
end;

 Application.Run;
end.


Я этого ньюанса не знал, поэтому наверняка были юзеры у которых прога просто "не запустилась". Что сделает большинство юзеров? - просто удалят ее и забудут.
Это большое неудобство как для юзера так и для разработчика.

Как вы думаете это можно считать багом, может запостить его qc?


 
Германн ©   (2016-01-18 00:12) [3]


> Как вы думаете это можно считать багом, может запостить
> его qc?

Нет. В Application.Run запускается цикл выборки сообщений. Т.е. сама программа. До вызова этого метода только ручками.


 
DayGaykin ©   (2016-01-18 09:20) [4]

Точно не знаю, но в лог должно записаться. Посмотри просмотр событий приложений.


 
Игорь Шевченко ©   (2016-01-18 10:27) [5]


> Это никак не изменить, спасет только ShowMessage?


Спасет MessageBox


 
Dimka Maslov ©   (2016-01-18 10:43) [6]

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


 
virex(home) ©   (2016-01-18 11:43) [7]

>Dimka Maslov ©   (18.01.16 10:43) [6]
> Исключение может ещё возникнуть в секции инициализации или финализации модуля. Тогда никакой try не спасёт. Поэтому единственный верный выход - писать программу так, чтобы при инициализации исключения не возникали.


try finally?


 
virex(home) ©   (2016-01-18 11:44) [8]

>virex(home) ©   (18.01.16 11:43) [7]

тьфу не дочитал


 
Игорь Шевченко ©   (2016-01-18 12:54) [9]


> Что сделает большинство юзеров? - просто удалят ее и забудут.
>  


И правильно сделают


 
Dimka Maslov ©   (2016-01-18 14:13) [10]


> try finally?


Я как-то давно изголился до такой степени, что возникало исключение при финализации модуля System. Какой уж тут try finally.


 
Rouse_ ©   (2016-01-18 18:38) [11]

Сгенерировать исключение на запуске приложения можно банальным аудитом на доступ к реестру, после чего можно даже ИШ сказать - выкинь свое ПО, оно не правильно работает и пусть его сотрут все пользователи :)
А чтобы было правильно, нужно обрабатывать исключения до того как все упадет.
http://alexander-bagel.blogspot.ru/2014/01/217.html


 
DayGaykin ©   (2016-01-18 19:52) [12]


> Rouse_ ©   (18.01.16 18:38) [11]
>

Сань, есть такие темы, на которую у тебя нет статьи? :)


 
Rouse_ ©   (2016-01-18 19:53) [13]

Ну вот скоро по виртуализации закончу статью и может быть уже и не будет :)


 
Игорь Шевченко ©   (2016-01-18 21:58) [14]

Rouse_ ©   (18.01.16 18:38) [11]

Мое не выкинут.


 
Rouse_ ©   (2016-01-18 23:00) [15]

Знаю :)



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

Текущий архив: 2017.01.15;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.021 c
15-1448473849
RusSun
2015-11-25 20:50
2017.01.15
Хулиганы добавили offtop сообщения в KOL конференции


4-1277328004
grigor
2010-06-24 01:20
2017.01.15
Как найти список всех окон у которых есть иконки в трее?


2-1428448138
Дмитрий
2015-04-08 02:08
2017.01.15
Закладки в Word


2-1421889993
duponamk
2015-01-22 04:26
2017.01.15
Сортировка данных по нажатию на заголовок DBGrid


2-1422590261
Drowsy
2015-01-30 06:57
2017.01.15
Message методы