🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.delphi
7 messages
7 total messages Started by Bartłomiej Sosenko Thu, 04 Aug 2016 13:08
Dyrektywy kompilatora
#345061
Author: Bartłomiej Sosenko
Date: Thu, 04 Aug 2016 13:08
13 lines
1747 bytes
Mam taką zagwozdkę w Delphi 5 - choć to ma znaczenie bardziej do rozwiązania niż problemu.

mam taki kod:

try
 funkcja xxx
except
 ...
end;

Jeśli uruchomię program pod kontrolą IDE Delphi to kiedy funkcja xxx wywoła błąd to program jest zatrzymywany i wyświetla się komunikat kompilatora.

Jak mogę zmienić działanie kompilatora aby ten fragment kodu nie powodował przerwy w pracy programu w przypadku uruchomienia w środowisku IDE? Coś jak {$I-} ? Bo oczywiście przy normalnej pracy mi to nie przeszkadza ale przy debugowaniu już tak.
Re: Dyrektywy kompilatora
#345062
Author: Pancio
Date: Thu, 04 Aug 2016 13:45
10 lines
1577 bytes
> try
>  funkcja xxx
> except
>  ...
> end;

> Jak mogę zmienić działanie kompilatora aby ten fragment kodu nie powodował przerwy w pracy programu w przypadku uruchomienia w środowisku IDE?

Tools --> Debugger Options --> Language Exceptions
Tutaj odptaszyc "Stop on Delphi Exceptions"
Re: Dyrektywy kompilatora
#345063
Author: Bartłomiej Sosenko
Date: Thu, 04 Aug 2016 13:58
6 lines
1610 bytes
W dniu czwartek, 4 sierpnia 2016 15:45:38 UTC+2 użytkownik Pancio napisał:
> Tools --> Debugger Options --> Language Exceptions
> Tutaj odptaszyc "Stop on Delphi Exceptions"

Dzięki,
co prawda potrzebowałem wyłączyć tylko pojedynczy typ błędu ale już mnie nakierowałeś gdzie :) Działa!
Re: Dyrektywy kompilatora
#345064
Author: Bartłomiej Sosenko
Date: Thu, 04 Aug 2016 13:59
1 lines
1487 bytes
Chociaż jeśli ktoś wie jak można to zrobić określając fragment kodu to było by lepiej - bo tak mogę w przyszłości przegapić tego samego typu błąd w innym miejscu kodu ...
Re: Dyrektywy kompilatora
#345065
Author: konsul41
Date: Fri, 05 Aug 2016 07:03
20 lines
1637 bytes
W dniu 04-08-2016 o 15:59, Bartłomiej Sosenko pisze:
> Chociaż jeśli ktoś wie jak można to zrobić określając fragment kodu to było by lepiej - bo tak mogę w przyszłości przegapić tego samego typu błąd w innym miejscu kodu ...
>
Które Delphi?
Chodzi o samą informację z Delphi, to można (przynajmniej w XE2) 
zaznaczyć aby ignorował ten wyjątek, który wyskoczył.
Wyłączenie w ogóle wyjątku w aplikacji to nie porozumienie.
Lepiej przechwycić wyjątek ogólny.
pisane z palca


try
  funkcja xxx
except
   ON E : Exception DO
   begin
     ShowMessage(E.message);
     //lub cokolwiek innego
   end;
end
Re: Dyrektywy kompilatora
#345066
Author: Bartłomiej Sosenko
Date: Fri, 05 Aug 2016 08:04
15 lines
2090 bytes
> try
>   funkcja xxx
> except
>    ON E : Exception DO
>    begin
>      ShowMessage(E.message);
>      //lub cokolwiek innego
>    end;
> end

Delphi 5 Ent

Tak dokładnie to obsługuję, ale tego typu kod działa ok w pracującej normalnie aplikacji. Mi chodzi o to że podczas uruchomienia aplikacji z IDE Delphi w trybie Debugowania, Debugger i tak wyrzuca własny komunikat błędu który wychwycił w przypadku wystąpienia wyjątku i później oczywiście wykonuje to co jest w sekcji except - ale mi to przeszkadza podczas debugowania w jednym miejscu gdzie ten wyjątek często występuje i chciałbym wyłączyć komunikat debuggera ale tylko w jednym miejscu kodu.

Coś jak {$I-} ... {$I+}
Re: Dyrektywy kompilatora
#345067
Author: konsul41
Date: Fri, 05 Aug 2016 08:16
20 lines
2008 bytes
W dniu 05-08-2016 o 10:04, Bartłomiej Sosenko pisze:
>> try
>>   funkcja xxx
>> except
>>    ON E : Exception DO
>>    begin
>>      ShowMessage(E.message);
>>      //lub cokolwiek innego
>>    end;
>> end
>
> Delphi 5 Ent
>
> Tak dokładnie to obsługuję, ale tego typu kod działa ok w pracującej normalnie aplikacji. Mi chodzi o to że podczas uruchomienia aplikacji z IDE Delphi w trybie Debugowania, Debugger i tak wyrzuca własny komunikat błędu który wychwycił w przypadku wystąpienia wyjątku i później oczywiście wykonuje to co jest w sekcji except - ale mi to przeszkadza podczas debugowania w jednym miejscu gdzie ten wyjątek często występuje i chciałbym wyłączyć komunikat debuggera ale tylko w jednym miejscu kodu.
>
> Coś jak {$I-} ... {$I+}
>
Dlatego napisałem, że przynajmniej w XE2 można zaznaczyć ptaszek w 
okienku wyskakującym wyjątku. Coś w rodzaju "Ignore this exception" i 
więcej okno się nie pokazuje.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads