Ще кажете ли как?...(BCB/C++/Delphi)
7 отговора
7 прегледа
Ще кажете ли как?...(BCB/C++/Delphi)
[ Exception handling - BCB, Software Exception]
С четене ще стане,ама аз искам да мина "метър" с времето.
Става въпрос за "Messagebox-a" който се явява при всяко throw на Exceptions.
Къде трябва да погледна, за да намеря друг handling, така че, да обработя
по друг начин процеса на обслужване на Exception. Нещо не ми харесва
нацина по който това става стандартно. Най-ще ми бъде кеф, този процес
да си го управлявам.
Поздрави: Любо
С четене ще стане,ама аз искам да мина "метър" с времето.
Става въпрос за "Messagebox-a" който се явява при всяко throw на Exceptions.
Къде трябва да погледна, за да намеря друг handling, така че, да обработя
по друг начин процеса на обслужване на Exception. Нещо не ми харесва
нацина по който това става стандартно. Най-ще ми бъде кеф, този процес
да си го управлявам.
Поздрави: Любо
Re: Ще кажете ли как?...(BCB/C++/Delphi)
Uf!
Pisna mi ot teb!
Sedia i si misla X, che samo postwash messagi BEZ DA CHETESH HELP-A!
PRAW LI SAM?
To taka wseki iska!
W help-a mu e maikata!
Pisna mi ot teb!
Sedia i si misla X, che samo postwash messagi BEZ DA CHETESH HELP-A!
PRAW LI SAM?
To taka wseki iska!
W help-a mu e maikata!
Не е ли те срам, RousseMan ?
Аз съм от Русе. Ако и ти си от Русе, не е ли те срам да ме "овикваш" тъй, ама ха-а-а-а-а.
Туй в кръга на шегата. Истината е, че програмирането ми е голям МЕРАК, над който
се стремя да работя, но НЕ МИ Е ОСНОВНО задължение, поради това времето ми
и ограничено по най-грозния начин... ама нейсе!
Що се отнася до HELP-а. За съжаление, механизма за обслужване на изключения,
е една от най-кофти засегнатите теми, в повечето четива. Имам чувството, че много
програмисти я карат през пръсти (щото по лесно).
И освен това , има ОГРОМНА разлика между HELP и HOWTO. Второто се пише от
добри професионалисти, а първото (за съжаление) понякога от секретарки, т.е. човек
губи доста време за да хване нишката, която се оказава твърде често проста работа.
Ти всъщност, с каво работиш (най-вече)?
P.S. В момента, нито си седя, нито си мисля X++;
Поздрави : Любо
Туй в кръга на шегата. Истината е, че програмирането ми е голям МЕРАК, над който
се стремя да работя, но НЕ МИ Е ОСНОВНО задължение, поради това времето ми
и ограничено по най-грозния начин... ама нейсе!
Що се отнася до HELP-а. За съжаление, механизма за обслужване на изключения,
е една от най-кофти засегнатите теми, в повечето четива. Имам чувството, че много
програмисти я карат през пръсти (щото по лесно).
И освен това , има ОГРОМНА разлика между HELP и HOWTO. Второто се пише от
добри професионалисти, а първото (за съжаление) понякога от секретарки, т.е. човек
губи доста време за да хване нишката, която се оказава твърде често проста работа.
Ти всъщност, с каво работиш (най-вече)?
P.S. В момента, нито си седя, нито си мисля X++;
Поздрави : Любо
Re: Не е ли те срам, RousseMan ?
I wse pak da mu se otgowori na choweka:
Delphi:
try
bang!;
bang;
except on exception do begin
Sory!
Sory!
end;end;
byrzo i lesno (trebe da se vkluchi SusUtils maj..) za C++ e analogichno samo deto
stawasshe s try {}catch{} ama ne sym go prawil skoro i me myrzi da cheta w helpa kak tochno stawashe...
Delphi:
try
bang!;
bang;
except on exception do begin
Sory!
Sory!
end;end;
byrzo i lesno (trebe da se vkluchi SusUtils maj..) za C++ e analogichno samo deto
stawasshe s try {}catch{} ama ne sym go prawil skoro i me myrzi da cheta w helpa kak tochno stawashe...
Хм! Има нещо друго
Да, така е. Обаче има нещо друго. Макар, че е писано на С, то не може да създаде
проблем у този който пише Pascal.
void __fastcall AlabalaForm::ButtonClick(TObject *Sender)
{
.............................
try {
EdinEdit-Text=DrugEdit->Text.ToInt(); // Не е ToIntDef(nInteger) !
}
catch (EConvertError *e)
{
Ala-bala
}
В такъв един случай, САМАТА програма (Application) си генерира изключение от
тип EConvertError, и стандартното ShowException си прави своето.
ЗНАЧИ:
1. Мен не ме бърка логиката в конвейра try/catch try/except/finally.
2. Мотам се с идеята да забраня извеждане на стандартното съобщение, като го
заменя с някакво друго деяние. Кофти е да ми се мотае пред погледа един
MessageBox.
МНОГО се опасявам, че правя сериозна грешка в разбирането на нещата, и че бая
ще се помотая, докато се опитвам да слугувам на глобалното
Application->OnException или пък на филтрирания в excpet.
Май не съм в час, селд като 6 часа вече (сумарно) броя мухите.
P.S. Ей, днес е Трифон Зарезан, бе хора....А наздраве. Ебааааа-си, имам и рожден ден!
Станах на 43 -:).
Поздрави: Любо
проблем у този който пише Pascal.
void __fastcall AlabalaForm::ButtonClick(TObject *Sender)
{
.............................
try {
EdinEdit-Text=DrugEdit->Text.ToInt(); // Не е ToIntDef(nInteger) !
}
catch (EConvertError *e)
{
Ala-bala
}
В такъв един случай, САМАТА програма (Application) си генерира изключение от
тип EConvertError, и стандартното ShowException си прави своето.
ЗНАЧИ:
1. Мен не ме бърка логиката в конвейра try/catch try/except/finally.
2. Мотам се с идеята да забраня извеждане на стандартното съобщение, като го
заменя с някакво друго деяние. Кофти е да ми се мотае пред погледа един
MessageBox.
МНОГО се опасявам, че правя сериозна грешка в разбирането на нещата, и че бая
ще се помотая, докато се опитвам да слугувам на глобалното
Application->OnException или пък на филтрирания в excpet.
Май не съм в час, селд като 6 часа вече (сумарно) броя мухите.
P.S. Ей, днес е Трифон Зарезан, бе хора....А наздраве. Ебааааа-си, имам и рожден ден!
Станах на 43 -:).
Поздрави: Любо
Re: Хм! Има нещо друго
Здравей, Любо
не съм ти писал отдавна, но на въпроса.
Според мен не трябва да ти се показва съобщение на екрана в този случай, когато стартираш програмата не от средата. Когато си в среда ти дава съобщението, но ако стартираш програмата отвън не би трябвало да го има.
Поздрави, Julian.
не съм ти писал отдавна, но на въпроса.
Според мен не трябва да ти се показва съобщение на екрана в този случай, когато стартираш програмата не от средата. Когато си в среда ти дава съобщението, но ако стартираш програмата отвън не би трябвало да го има.
Поздрави, Julian.
Здравей Julian - Ха-ха-ха...(тъпотия)
Ти си абсолютно прав! Но ще ти кажа защо се смея, и то глупово.
Направо бях побеснял, че този, и ТОЧНО ТОЗИ EConvertError ми създава грижи.
А то какво излезе. След като пуснах ТОЧНО ТОЗИ пример, който дадох малко преди,
той си заработи нормално, ТОЧНО както ти каза! Оказа се се, че в реалната програма
която правя,в една функция, има един throw, който е напълно излишен, и съм
го сложил от "огромна любов" към всякакви експерименти. Пълна тъпотия! Добре, че
ме подсети да пробвам нещата откъм простата страна, и да не пълня ефира неправилно.
Всъщност, моите главоблъсканици са свързани с работа с TDateTime. Токущо седнах
да си майсторя една компонента TGetDate за потребителски вход на дати. Там пък имам
някои грижи, щото старите програми (на Clipper) нямаха никави проблеми с входа на дати.
Но при Win не е съвсем така. Ти с какво си правиш входа на дати? Аз честно казано,
робувам на идеята, където имам време сам да си правя компоненти, а не да ползувам
готови.
Как си с работата? Каза нещо преди вереме по този въпрос. При мен е скръб. От един месец сме в несъстоятелност.
Поздрави: Любо
Направо бях побеснял, че този, и ТОЧНО ТОЗИ EConvertError ми създава грижи.
А то какво излезе. След като пуснах ТОЧНО ТОЗИ пример, който дадох малко преди,
той си заработи нормално, ТОЧНО както ти каза! Оказа се се, че в реалната програма
която правя,в една функция, има един throw, който е напълно излишен, и съм
го сложил от "огромна любов" към всякакви експерименти. Пълна тъпотия! Добре, че
ме подсети да пробвам нещата откъм простата страна, и да не пълня ефира неправилно.
Всъщност, моите главоблъсканици са свързани с работа с TDateTime. Токущо седнах
да си майсторя една компонента TGetDate за потребителски вход на дати. Там пък имам
някои грижи, щото старите програми (на Clipper) нямаха никави проблеми с входа на дати.
Но при Win не е съвсем така. Ти с какво си правиш входа на дати? Аз честно казано,
робувам на идеята, където имам време сам да си правя компоненти, а не да ползувам
готови.
Как си с работата? Каза нещо преди вереме по този въпрос. При мен е скръб. От един месец сме в несъстоятелност.
Поздрави: Любо
Още нещо
Май сте се разбрали вече ама и аз да добавя нещо:
Ако искаш да хванеш exception-ните закачи се на Application.OnException
procedure Form1.LogException(Sender: TObject; E: Exception);
begin
LogAddLine(E.Message);
Application.ShowException(Exception(ExceptObject)); // Ако не го викнеш няма никакви exception-ни :)))
end;
procedure Form1.FormCreate(Sender: TObject);
begin
Application.OnException := LogException;
...
п.п.
Много полезно ако програмата ти при клиент гърми рядко и не знаеш какво да правиш.
Ако искаш да хванеш exception-ните закачи се на Application.OnException
procedure Form1.LogException(Sender: TObject; E: Exception);
begin
LogAddLine(E.Message);
Application.ShowException(Exception(ExceptObject)); // Ако не го викнеш няма никакви exception-ни :)))
end;
procedure Form1.FormCreate(Sender: TObject);
begin
Application.OnException := LogException;
...
п.п.
Много полезно ако програмата ти при клиент гърми рядко и не знаеш какво да правиш.