Zitat von
flomei:
D.h. Assert ist nur so was ähnliches wie try ... except?
Assertions sind in Delphi mithilfe von Exceptions implementiert, ja.
Beide Konstrukte verfolgen aber unterschiedliche Ansätze: Während bei Assertions (siehe zweites Posting) Invarianten und Vor-/Nachbedinungen nach dem "Vetragskonzept"
zugesichert werden und anderfalls ein Abbruch (hier: in Form einer
Exception) initiiert wird,
Code:
//hier gilt mit Sicherheit A
ArbeitenUnterDieserPrämisse;
//hier gilt nun mit Sicherheit B und A
sollen Exceptions den Entwickler auf denkbare Fehlersituationen aufmerksam machen und die Behandlung eben dieser unvermeidbaren Situationen von der tatsächlichen Logik entkoppeln, um verwirrende Konstrukte zu vermeiden und klar zu kommunizieren was passieren könnte, wenn man eine Methode verwendet:
Code:
EineMethode; //könnte Fehler A verursachen
EineAndereMethode; //könnte Fehler A oder B verursachen
Code:
//in diesem Abschnitt:
VerwendenVon EineMethode;
Verwendenvon EineAndereMethode;
//könnten Fehler A oder B auftreten!