Zitat von
Delphi-Laie:
Delphi-Quellcode:
var a,b:integer;
begin
b:=0;
try
a:=a div b;
ShowMessage('Kein Fehler')
except
ShowMessage('Fehler')
end
end
ergibt die Meldung "Kein Fehler", also wird der except-Teil nicht angesprungen (obwohl eine Division durch 0 angefordert wird, also in meinen Augen ein völlig absurdes Programmverhalten)
Ja, ist auch klar. Da du a nie benutzt, wird die Zeile schlicht wegoptimiert, die existiert in der Exe nicht mehr. Da sollte aber auch eine entsprechende Compilermeldung kommen, dass das nie benutzt wird...
Und bei deinem zweiten Quelltext sollte wenn, dann nur in Delphi eine Meldung angezeigt werden, aber nicht, wenn das Programm eigenständig läuft oder die Anzeige in Delphi deaktiviert ist.
(Aber eigentlich sollte das auch wegoptimiert werden und nix angezeigt werden von einem Fehler.