Aber bitte nicht das
Exception-Handling so übernehmen, da kräuseln sich mir die Fussnägel.
So in der Art wäre das schon viel besser (und vor allem aussagekräftiger):
Delphi-Quellcode:
unit de.company.FooFramework;
interface
uses
System.SysUtils;
type
EFooException =
class(
Exception );
EFooNoPrinterException =
class( EFooException );
EFooTemplateParseException =
class( EFooException );
type
TFoo =
class
/// <summary>
/// Druckt ein Etikett auf einem Etiketten-Drucker aus
/// </summary>
/// <exception cref="EFooTemplateParseException">
/// <see cref="EFooTemplateParseException">EFooTemplateParseException</see>
/// Bei einem Parser-Fehler
/// </exception>
/// <exception cref="EFileNotFoundException">
/// <see cref="EFileNotFoundException">EFileNotFoundException</see>
/// Wenn die Vorlage nicht gefunden wurde
/// </exception>
procedure PrintLabel( );
end;
implementation
{ TFoo }
procedure TFoo.PrintLabel;
var
CurrentLabel:
string;
begin
if not FileExists( CurrentLabel )
then
raise EFileNotFoundException.CreateFmt( '
Datei %s wurde nicht gefunden', [ CurrentLabel ] );
try
// Parsen der Datei
except
// Wir wrappen alle auftretenden Ausnahmen mit unserer Exception-Klasse
raise EFooTemplateParseException.CreateFmt( '
Fehler beim Parsen der Datei %s', [ CurrentLabel ] );
end;
end;
end.
Wichtig ist die Dokumentation, welche Exceptions auftreten können.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)