ASSERT

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » A » ASSERT

Syntax: ASSERT (Ausdruck)
Typ: Makro
Kategorie: Fehlerbehandlung

Das Makro ASSERT wurde zum Debugging entwickelt und funktioniert nur, wenn der Compiler mit der Option "-g" aufgerufen wird. Ist dies der Fall, wird das Programm beendet, sobald 'Ausdruck' gleich null ist. Zusätzlich wird eine Zeile ausgegeben:

Dateiname(Zeilennummer): assertion failed at PROZEDUR: Ausdruck

Wenn die Option "-g" nicht an fbc übergeben wird, erzeugt dieses Makro keinen Code; das Programm wird nicht beendet, wenn der Ausdruck gleich null wird.

Beispiel:

Declare Sub foo()

Sub foo()
  Dim a As Integer = 10
  For i As Integer = 1 To 20
    a -= 1
    Assert (a <> 0)
    Print a
  Next
End Sub

foo()

Sub Quit Destructor
  Sleep
End Sub

Wenn -g an den Compiler übergeben wird, wird das Programm mit dieser Meldung beendet:

test.bas(8): assertion failed at FOO: a <> 0

Die DESTRUCTOR-Sub bewirkt, dass auf einen Tastendruck gewartet wird; so kann die Meldung gelesen werden und verschwindet nicht sofort. Das Beispiel schlägt unter Umständen fehl, wenn Sie es z. B. mit der "Quick Run"-Option in FbEdit aufrufen. Eine fertig compilierte Debug-EXE wird aber wie erwartet bei 0 anhalten.

Unterschiede zu QB: neu in FreeBASIC

Unterschiede unter den FB-Dialektformen:
In der Dialektform -lang qb steht ASSERT nicht zur Verfügung und kann nur über __ASSERT aufgerufen werden.

Siehe auch:
ASSERTWARN, Der Compiler, Fehlerbehandlung, Debugging