Registriert seit: 27. Nov 2017
2.508 Beiträge
Delphi 7 Professional
|
AW: Zwischenablage Zugriff verweigert
17. Aug 2022, 11:20
Nein, das ist nicht neu, in Delphi 7 ist das Verhalten auch so.
Delphi-Quellcode:
Try
i := 0;
k := 1;
x := k / i;
except
on EZeroDivide do begin
MessageDLG(' Wer teilt denn hier durch 0?',mtError,[mbOk],0);
end;
on EMathError do begin
MessageDLG(' Irgendein mathematischer Fehler!' + sLinebreak + e. Message,mtError,[mbOk],0);
end;
// ... weitere on EIrgendwas-Blöcke
// Wenn das vorhanden, landen hier alle übrigen Fehler.
on e : Exception
// Das macht man nicht ohne sinnvollen Inhalt, weil dann alle (übrigen) Fehler ignoriert werden.
end;
end;
Try
i := 0;
k := 1;
x := k / i;
except
on EZeroDivide do begin
MessageDLG(' Wer teilt denn hier durch 0?',mtError,[mbOk],0);
end;
on EMathError do begin
MessageDLG(' Irgendein mathematischer Fehler!' + sLinebreak + e. Message,mtError,[mbOk],0);
end;
// ... weitere on EIrgendwas-Blöcke
on e : Exception
MessageDLG(' Es ist ein (beliebiger) Fehler (außer den davor behandelten) aufgetreten!' + sLinebreak + e. Message,mtError,[mbOk],0);
end;
end;
Try
i := 0;
k := 1;
x := k / i;
except
on EZeroDivide do begin
MessageDLG(' Wer teilt denn hier durch 0?',mtError,[mbOk],0);
end;
on EMathError do begin
MessageDLG(' Irgendein mathematischer Fehler!' + sLinebreak + e. Message,mtError,[mbOk],0);
end;
// Alle bis hier nicht "abgearbeiteten Fehler" werden weitergereicht.
// Das Programmverhalten ist dann so, als gäbe es keine Fehlernbehandlung.
end;
Die übelste Variante ist:
Delphi-Quellcode:
try
i := 0;
k := 1;
x := k / i;
except
end;
Hier wird einfach alles, was so an Fehlern auftreten kann, schlicht und einfach ignoriert.
Geändert von Delphi.Narium (17. Aug 2022 um 11:45 Uhr)
Grund: Text ergänzt
|
|
Zitat
|