Intermec PC43d Fingerprint Developer's Guide (PC23d, PC43d/t, PM23c, PM43, PM4 - Page 33

Branching to an Error-Handling Subroutine, Using an ON ERROR GOTO Instruction

Page 33 highlights

Chapter 2 - Understanding Fingerprint Syntax Depending on whether the value you enter from the host is less than 0 or not, the execution branches to one of two lines (100 or 200), which print different messages. In either case, the execution branches to line 30, where the program ends. There are more elegant ways to create such a program, but this example illustrates how GOTO always branches to a specific line. Line 20 is an example of conditional branching. For more information, see "Instructions for Conditional Branching" on page 18. The GOTO statement can also be used to resume program execution at a specified line after a STOP statement. Branching to an Error-Handling Subroutine Two instructions are used to branch to and from an error-handling subroutine when an error occurs. Using an ON ERROR GOTO Instruction ON ERROR GOTO branches the execution to a specified line when an error occurs, ignoring the standard error-trapping routine. If the line number is specified as 0, the standard error-trapping routine is used. Resuming Execution After Error Handling Use a RESUME statement to resume execution after an error-handling subroutine has been executed. RESUME is only used in connection with ON ERROR GOTO statements and can be used as follows: • RESUME or RESUME 0 - Execution is resumed at the statement where the error occurred. • RESUME NEXT - Execution is resumed at the statement after the one that caused the error. • RESUME - Execution is resumed at the specified line. • RESUME - Execution is resumed at the specified line label. This example shows branching to a subroutine when an error has occurred. The subroutine determines the type of error and takes the appropriate action. In this example only one error ("1019 Invalid font") is checked. After the error is cleared by substituting the missing font, the execution is resumed. 10 20 30 40 1000 1010 1020 1030 1040 1050 1060 2000 2010 ON ERROR GOTO 1000 PRTXT "HELLO" PRINTFEED END IF ERR=1019 THEN FONT "OCR-A" ELSE GOTO 2000 PRINT "Substitutes missing font" FOR A%=1 TO 3 SOUND 440,50 SOUND 359,50 NEXT A% RESUME PRINT "Undefined error, execution terminated" END RUN Fingerprint Developer's Guide 21

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163

Chapter 2 — Understanding Fingerprint Syntax
Fingerprint Developer’s Guide
21
Depending on whether the value you enter from the host is less than 0 or not, the
execution branches to one of two lines (100 or 200), which print different messages.
In either case, the execution branches to line 30, where the program ends.
There are more elegant ways to create such a program, but this example illustrates
how GOTO always branches to a specific line. Line 20 is an example of conditional
branching. For more information, see
“Instructions for Conditional Branching”
on page 18
.
The GOTO statement can also be used to resume program execution at a specified
line after a STOP statement.
Branching to an Error-Handling Subroutine
Two instructions are used to branch to and from an error-handling subroutine
when an error occurs.
Using an ON ERROR GOTO Instruction
ON ERROR GOTO branches the execution to a specified line when an error occurs,
ignoring the standard error-trapping routine. If the line number is specified as 0, the
standard error-trapping routine is used.
Resuming Execution After Error Handling
Use a RESUME statement to resume execution after an error-handling subroutine
has been executed. RESUME is only used in connection with ON ERROR GOTO
statements and can be used as follows:
RESUME or RESUME 0 - Execution is resumed at the statement where the error
occurred.
RESUME NEXT - Execution is resumed at the statement after the one that
caused the error.
RESUME <ncon> - Execution is resumed at the specified line.
RESUME <line label> - Execution is resumed at the specified line label.
This example shows branching to a subroutine when an error has occurred. The
subroutine determines the type of error and takes the appropriate action. In this
example only one error (“1019 Invalid font”) is checked. After the error is cleared by
substituting the missing font, the execution is resumed.
10
ON ERROR GOTO 1000
20
PRTXT “HELLO”
30
PRINTFEED
40
END
1000
IF ERR=1019 THEN FONT “OCR-A” ELSE GOTO 2000
1010
PRINT “Substitutes missing font”
1020
FOR A%=1 TO 3
1030
SOUND 440,50
1040
SOUND 359,50
1050
NEXT A%
1060
RESUME
2000
PRINT “Undefined error, execution terminated”
2010
END
RUN