Microsoft KB Archive/21863

= Passing Variables to ON ERROR and ON Event Handlers =

Article ID: 21863

Article Last Modified on 8/16/2005

-

APPLIES TO


 * Microsoft QuickBasic 4.0
 * Microsoft QuickBASIC 4.0b
 * Microsoft QuickBasic 4.5 for MS-DOS
 * Microsoft BASIC Compiler 6.0
 * Microsoft BASIC Compiler 6.0b
 * Microsoft BASIC Professional Development System 7.0
 * Microsoft BASIC Professional Development System 7.1

-



This article was previously published under Q21863



SUMMARY
This article discusses how a QuickBasic program can pass variables to ON ERROR and ON "event" handler routines compiled with subprograms that are separate from the main program.

(The different ON "event" statements are ON TIMER GOSUB, ON KEY GOSUB, ON PLAY GOSUB, ON STRIG GOSUB, and ON PEN GOSUB.)



MORE INFORMATION
Variables can be passed through the COMMON SHARED or DIM SHARED statement to ON ERROR and ON "event" handler routines compiled separately from the main program. Variables that do not follow a COMMON SHARED or DIM SHARED statement are not accessible to the handler routines (unless the handler is in the same source file as the main program).

The following is an example of a separately compiled subprogram that shares a flag variable with its error handler routine: ' TEST.BAS COMMON SHARED FLAG 'Used if FLAG is to be global between modules 'DIM SHARED FLAG   'Will also work, if FLAG is to be global only 'to this module errortrap: ' The error is handled here: PRINT "Error Number Trapped="ERR FLAG=5 RESUME NEXT ' Resumes to line after where error occurred. SUB test STATIC ON ERROR GOTO errortrap FLAG=0 ERROR 5 ' Forces a test error number 5 to occur. PRINT "FLAG=",FLAG ' Execution resumes here after the error. END SUB This program is called by the following separate main program module: ' MAIN.BAS CALL TEST First, compile as follows: BC MAIN/X; BC TEST/X; You then can LINK MAIN+TEST; run the resulting program as an example.

You cannot use the linenumber or linelabel option of RETURN or RESUME in conjunction with subprograms.

In QuickBasic versions 1.0, 1.01, 1.02, 2.0, 2.01, 3.0, and 4.0, error and event handling routines are local to each separately compiled module. A given error or event handling routine serves all subprograms compiled in the same module. The ON ERROR GOTO or ON event GOSUB statement should appear in each subprogram that is compiled separately from the main program.

QuickBasic versions 4.0b and 4.5, Microsoft Basic Compiler versions 6.0 and 6.0b, and Microsoft Basic PDS versions 7.0 and 7.1 offer global error handling, which is described in a separate article. For more information, query on the following words:

global and error and handling and QuickBasic

Additional query words: QuickBas BasicCom 1.00 2.00 3.00 4.00 4.00b 4.50 6.00 6.00b 7.00 7.10

Keywords: KB21863

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.