Einzelnen Beitrag anzeigen

Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#16

AW: Zwischenablage Zugriff verweigert

  Alt 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
  Mit Zitat antworten Zitat