Главная страница
    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.05 c
4-1278387805
Rassamaha78
2010-07-06 07:43
2017.01.15
Запрет закрытия чужого приложения через WinAPI


6-1282282725
RGV
2010-08-20 09:38
2017.01.15
POP3


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


15-1455465762
pavelnk
2016-02-14 19:02
2017.01.15
С праздником!


6-1281776559
Симулятор
2010-08-14 13:02
2017.01.15
Как сделать симуляцию в индиевских серверах?





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