1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-07-04 04:50:22 +00:00
QB64-PE/internal/help/$ASSERTS_$1111111.txt
Roland Heyder aeb9c0668b Updates help files for use with new Wiki parser (2nd try)
Note: Many files were removed (not yet existing/empty pages). The parser will try to download them on demand and will auto-generate text for missing pages (eg. most _gl pages).
2022-05-21 00:18:31 +02:00

54 lines
1.7 KiB
Plaintext

{{QBDLDATE:05-20-2022}}
{{QBDLTIME:23:06:28}}
This metacommand enables debug tests with the [[_ASSERT]] statement.
{{PageSyntax}}
:[[$ASSERTS]][:CONSOLE]
{{PageDescription}}
* The metacommand does not require a comment or [[REM]] before it. There is no space after the colon.
* 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|#fc5454}}''' error.
* Detailed error messages passed to the [[_ASSERT]] statement will be displayed in the console window, but only if [[$ASSERTS|$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 1.4 and up''' (QB64 Team)
* '''QBPE 0.5 and up''' (QB64 Phoenix Edition)
{{PageExamples}}
;Example:Adding test checks for parameter inputs in a function.
{{CodeStart}}
{{Cl|$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}}
* [[_ASSERT]]
* [[$CHECKING]]
* [[Relational Operations]]
* [[ERROR Codes]]
{{PageNavigation}}