Czemu try..except nie przechwytuje AV?

Odpowiedz Nowy wątek
2006-12-18 10:49
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

2006-12-18 11:16
spc
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

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
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

2006-12-18 13:05
Opi
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
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
0

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


Mam nadzieję, że pomogłem :)

Łukasz Brodny

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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