====== assert ======
===== Konzept =====
[[de:dev:concept:Control]]
===== Stand =====
nicht implementiert
===== Ursprung =====
siehe [[de:dev:ext:return]].
===== Scope =====
Innerhalb einer [[de:dev:scope:Function]]
===== Rückgabe =====
assert gibt [[de:dev:keywords;neutral]] zurück, um das folgende Konstrukt zu ermöglichen:
x = bla() && assert x.isValid();
===== Beschreibung =====
Ist allen Rückgabevariablen ein Wert zugewiesen worden (z.B. ein Defaultwert) oder müssen sie nicht zwangsweise initialisiert werden, dann können mit assert zur Laufzeit Abfragen gemacht werden, ob die bisherigen Anweisungen wie erwartet verlaufen sind. Ist die angegebene Bedingungen nicht false/null, so wird die Programmausführung fortgesetzt. Ansonsten werden die Rückgabeparameter auf den Default-Wert gesetzt und der Funktionsaufruf abgebrochen.
==== Beispiel ====
code( Window * result=null ) MyOpenWin :=
{
  Window * win;
  assert win = openWin();  // wenn falsch, dann exit mit default wert.
  // Initialisierung wird nur ausgeführt, wenn win "wahr" ist.
  
  return win;
}
===== siehe auch =====
[[if]], [[else]], [[fail]], [[return]]