Referenz - ASSERT
Syntax: ASSERT (Ausdruck)
Kategorie: Programmorganisation
Typ: Makro-Anweisung
Das ASSERT-Macro 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(ZEILENNNUMMER): 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 (main) 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 <> 0Die
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 kompilierte 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
| Zusätzliche Informationen und Funktionen | ||||
|---|---|---|---|---|
|
||||




Versionen