Czemu try..except nie przechwytuje AV?

Odpowiedz Nowy wątek
2006-12-18 10:49

Rejestracja: 17 lat temu

Ostatnio: 3 dni temu

0

No właśnie. Delphi 2005

Próbowałem też na chama:

try
  //kod
except
  on EAccessViolation do 
  begin
     showMessage('Błąd');
  end;
end;

ale też nie przechwytuje.

Pozostało 580 znaków

spc
2006-12-18 11:16
spc

Rejestracja: 14 lat temu

Ostatnio: 1 rok temu

0

Przechwytuje wyjatek, ale jezeli uruchomisz aplikacje w srodowisku Delphi to i tak wywali na ekran informacje. Po uruchomieniu pliku wynikowego *.EXE (bezposrednio, nie pod kompilatorem) bedzie bedzie OK.


00, OK, 00, 00
...dziś się to robi na sprzętach, kiedyś na patentach...

Pozostało 580 znaków

Andrzej Dabrowski
2006-12-18 12:07
Andrzej Dabrowski
0

Możesz poustawiać środowisko tak by nie pokazywało. Możesz rozszerzyć podglądanie w środowisku w porównaniu z exekiem - a zdaje się, że z automatu jest tak ustawione.

Pozostało 580 znaków

2006-12-18 13:04

Rejestracja: 17 lat temu

Ostatnio: 3 dni temu

0

Mam wyłączone "alarmowanie" o wyjątkach w Delphi.

Kwoli ścisłości. Wszystkie inne wyjątki są ładnie przechwytywane oprócz AV

Pozostało 580 znaków

Opi
2006-12-18 13:05
Opi

Rejestracja: 15 lat temu

Ostatnio: 6 miesięcy temu

0

To spróbuj tak...

{$D-} 
try
  //kod
except
  on EAccessViolation do
  begin
     showMessage('Błąd');
  end;
end;
{$D+} 

Pozostało 580 znaków

2006-12-19 11:08

Rejestracja: 17 lat temu

Ostatnio: 3 dni temu

0
Opi napisał(a)

To spróbuj tak...

{$D-} 
try
//kod
except
on EAccessViolation do
begin
showMessage('Błąd');
end;
end;
{$D+} 

To może być to. Co robi ta dyrektywa?

Pozostało 580 znaków

2006-12-19 17:25

Rejestracja: 17 lat temu

Ostatnio: 6 lat temu

0

Generuje informacje dla debuggera. {$D+/-} to to samo, co {$DEBUGINFO +/-}


Mam nadzieję, że pomogłem :)

Łukasz Brodny

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0