Referenz - 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
- 'Dateiname' ist der Dateiname des gerade aktiven Codes inklusive Pfad.
- 'Zeilennummer' ist die Zeile, in der abgebrochen wurde.
- 'PROZEDUR' ist die Prozedur, in der abgebrochen wurde. Wird das Programm auf Modulebene abgebrochen, wird __FB_MAINPROC__ ausgegeben.
- 'Ausdruck' ist der Ausdruck, der null geworden ist.
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
Zusätzliche Informationen und Funktionen | ||||
---|---|---|---|---|
|