Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#17

AW: Anwendung zur Dateierweiterung aus der Registry lesen

  Alt 23. Mai 2015, 12:31
Exceptions sind Teil der strukturierten Programmierung. Ist vielleicht Geschmackssache, ob man welche wirft und wann und wie. Aber wenn ich mit Klassen arbeite kannich einfach eine Methode nach der anderen aufrufen und die Fehlerbehandlung zentral an einer Stelle abhandeln. Hat den Vorteil, dass ich nicht zich if-then Ebenen habe und in der 10. dann gucken muss, wo ich eigentlich bin und ob alle Bedingungen noch Konsistent sind. Beispiel:

Delphi-Quellcode:
if funca then
begin
  if funcb then
  begin
    if funcc then
    begin
      // irgendwas
    else
      // irgendwas
  end
  else
    //irgendwas
end
else
  // irgendwas
end;
Jetzt der Code mit Exceptions:
Delphi-Quellcode:
funca ();
begin
  if not APIFunc then
    RaiseLastOSError;
end;
Delphi-Quellcode:
try
  funca;
  funcb;
  funcc;
execpt
  ShowMessage(EcodeToString(Exception.ECode));
end;

Das funktioniert natürlich nur, wen die Funktionen Exceptions werfen. Und da kann es schon sinnvoll sein eine API Funktion so zu kapseln, dass sie eine Exception wirft.

Siehe auch: http://docs.embarcadero.com/products...stOSError.html
Michael
Ein Teil meines Codes würde euch verunsichern.

Geändert von Luckie (23. Mai 2015 um 12:35 Uhr)
  Mit Zitat antworten Zitat