1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-05 22:50:23 +00:00
QB64-PE/internal/help/$ASSERTS_$1111111.txt
Roland Heyder 6912727753 Update help files
Help file snapshot as of 07/31/2022.
2022-07-31 23:57:56 +02:00

57 lines
1.9 KiB
Plaintext

{{QBDLDATE:07-31-2022}}
{{QBDLTIME:23:36:10}}
The '''$ASSERTS''' [[metacommand]] enables debug tests with the [[_ASSERT]] macro.
{{PageSyntax}}
: '''$ASSERTS'''
: '''$ASSERTS:CONSOLE'''
{{PageDescription}}
* This metacommand does not require a comment ''[[Apostrophe|']]'' or [[REM]] before it. There is no space between the metacommand name, the colon and the CONSOLE parameter.
* If this metacommand is used in a program and any of the set [[_ASSERT]] checkpoints will fail, then the program will stop with an '''{{Text|_ASSERT failed|red}}''' error.
* Detailed error messages passed to the [[_ASSERT]] statement will be displayed in the console window, but only if '''$ASSERTS:CONSOLE''' is used.
;Note: This metacommand is the main switch to enable debug tests during development. Later just remove this metacommand to compile the program without debugging code, all the [[_ASSERT]] statements may remain in the code for later debugging sessions, they are simply ignored without this metacommand.
{{PageAvailability}}
* '''QB64 v1.4 and up''' (QB64 Team)
* '''QB64-PE v0.5 and up''' (QB64 Phoenix Edition)
{{PageExamples}}
;Example:Adding test checks for parameter inputs in a function.
{{CodeStart}}
{{Cl|$ASSERTS|$ASSERTS:CONSOLE}}
{{Cl|DO}}
a = {{Cl|INT}}({{Cl|RND}} * 10)
b$ = myFunc$(a)
{{Cl|PRINT}} a, , b$
{{Cl|_LIMIT}} 3
{{Cl|LOOP}} {{Cl|UNTIL}} {{Cl|_KEYHIT}}
{{Cl|FUNCTION}} myFunc$ (value {{Cl|AS}} {{Cl|SINGLE}})
{{Cl|_ASSERT}} value > 0, "Value cannot be zero"
{{Cl|_ASSERT}} value <= 10, "Value cannot exceed 10"
{{Cl|IF}} value > 1 {{Cl|THEN}} plural$ = "s"
myFunc$ = {{Cl|STRING$}}(value, "*") + {{Cl|STR$}}(value) + " star" + plural$ + " :-)"
{{Cl|END}} {{Cl|FUNCTION}}
{{CodeEnd}}
{{PageSeeAlso}}
* [[Metacommand]]
* [[_ASSERT]]
* [[$CHECKING]]
* [[Relational Operations]]
* [[ERROR Codes]]
{{PageNavigation}}
[[Category:Final]]