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

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.055 c
15-1449950981
@!!ex
2015-12-12 23:09
2017.01.15
Как получить обратную матрица?


1-1341941337
4ainik
2012-07-10 21:28
2017.01.15
При удалении TabSheet-ов стринггрид теряет фокус


15-1456781401
Юрий
2016-03-01 00:30
2017.01.15
С днем рождения ! 1 марта 2016 вторник


2-1424793636
TYMON
2015-02-24 19:00
2017.01.15
Intraweb Подключение к базе через ADO


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





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