Microsoft KB Archive/58924

From BetaArchive Wiki
Knowledge Base


RUN Inside ON ERROR Handler Causes "Press Any Key" in EXE

Article ID: 58924

Article Last Modified on 11/21/2006

This article was previously published under Q58924

SYMPTOMS

Using a RUN statement to run a file from inside an error-handling routine causes the message "press any key to return to system" to be displayed before passing control to the new program. This problem occurs in compiled EXE files only; the QuickBasic QB.EXE environment transfers control without any message.

Use one of the following to work around the problem:

  1. Use CHAIN instead of RUN.
  2. To restart the same program, use RUN without a filename.
  3. RESUME to a line that executes the RUN statement.


STATUS

Microsoft has confirmed this to be a bug in Microsoft QuickBasic Versions 4.00, 4.00b, and 4.50, and in Microsoft Basic Compiler Versions 6.00 and 6.00b for MS-DOS and MS OS/2 (buglist6.00, buglist6.00b). This problem was corrected in Microsoft Basic Professional Development System (PDS) Version 7.00 (fixlist7.00).

MORE INFORMATION

The following code example displays the "press any key..." message when run in EXE form. The three workarounds mentioned above are each listed in comments.

   'A.BAS  compile and link commands:
   '   BC   /E A;
   '   LINK    A;
   ON ERROR GOTO handle:
   PRINT "Before error"
   IF INKEY$ <> CHR$(27) THEN ERROR 100
   END

   handle:
   PRINT "In error"
   'CHAIN "a"                       'Workaround #1
   'RUN                             'Workaround #2
   'RESUME 110                      'Workaround #3
   110 RUN "a"
                


Additional query words: QuickBas SR# S900201-75 buglist4.00 buglist4.00b buglist4.50

Keywords: KB58924