Einzelnen Beitrag anzeigen

Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.095 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#25

Re: Möglichkeit: Try ... Except ... Finally ?

  Alt 22. Aug 2008, 18:35
Hi,

Zitat von Apollonius:
Dein "puh" wird nicht nur nicht ausgeführt, wenn du eine neue Exception wirfst; es genügt, wenn du auf spezielle Exceptions reagierst (on E: EWhatever do). Dann werden andere Exceptions nämlich durchgereicht und dein "puh" kommt nicht zum Zuge.
Und genau das sollte man immer machen. Sonst verliert beispielsweise Abort die Wirkung, oder man merkt gar nicht, dass man eine ganz andere Meldung anzeigt als zu der aufgetretenen Exception passt.

Delphi-Quellcode:
try
  StringList.Add(StrToInt(Edit.Text)); //Bei Add --> z. B. EOutOfResources
except
  ShowMessage('Bitte Zahl eingeben!');
end;
Der Benutzer fragt sich nun, warum das keine Zahl war.

Delphi-Quellcode:
try
  Abort;
except
  foo;
end;
bar;
Hier werden trotz Abort foo und bar aufgerufen - und eventuell noch ganz andere Vorgänge ausgeführt, die eigentlich Abgebrochen werden sollten.

Etwas anderes ist es, wenn man raise; dazu schreibt.

Delphi-Quellcode:
function CreateBitmapFromFile(const FileName: String): TBitmap;
begin
  Result := TBitmap.Create;
  try
    Result.LoadFromFile(FileName);
  except
    Result.Free;
    raise;
  end;
end;
Mfg
FAlter
Felix Alter
Japanurlaub 2015
  Mit Zitat antworten Zitat