MSBASIC中如何运用陷井技术

Author: 李刚荣 Date: 1995-11-24

        首先设计好一段预想事件处理程序(或称续元处理程序),再在程序的开头安排一条陷井设置语句,以指出续元程序的入口行号。在程序执行过程中,当有事件发生时,就转到相应的续元处理程序去执行,处理完毕后,再返回到被中断的程序继续执行。
        允许用户程序捕获的事件主要有程序性出错、键盘功能键输入、时间定时器以及异步通讯中断等。
        (1)出错陷井
        计算机在执行程序的过程中,可能要发生各种错误并停止运行,我们可以利用出错陷井技术捕获可能会发生的错误或使用错误模拟语句产生的错误号,使计算机发生错误时不停止运行,而是转去执行一段能够处理这些错误的程序。与此有关的语句是:
        ①ON ERROR GOTO<行号> 出错陷井设置语句,行号是错误处理程序的起始行号
        ②ERROR n 错误模拟语句,n的值为所模拟的BASIC错误的错误号。
        ③ERR 取当前发生的错误号
        ④ERL 取当前的出错行号
        ⑤RESUME[<行号>]
        执行了错误处理程序以后,恢复到指定的行号去执行;省略行号表示恢复到出错的行;行号为NEXT表示恢复到出错的下一行。
        (2)功能键陷井
        与功能键陷井有关的语句主要有:
        ON KEY(n) GOSUB <> 当设定的功能键输入后,转续元程序入口。
        KEY(n) ON  允许发出第n号功能键中断
        KEY(n) OFF  禁止发出第n号功能键中断
        KEY(n) STOP  停止发出第n号功能键中断,但要记录已发生的事件,以备后用。
        (3)时钟陷井
        时钟陷井技术可用于定时数据采样,限时回答问题等环境中,其设置语句为:
        ON TIMER(n) GOSUB<行号>
        其中,n取值1~86400秒(24小时),表示定时器的设定时间值。<行号>为续元程序的起始行号。它的设置过程是:
        ①编制续元程序
        ②用ON TIMER(n) GOSUB语句设置时间间隔
        ③用TIMER ON语句启动时钟计时。当时间计到与设定的时间相同时,则发生时钟中断,由ON TIMER语句捕获并转续元程序处理。这时,时钟归零重新开始计时,以发出第2次中断,这样不断往复下去,直到遇到TIMER OFF为止。
        (李刚荣)