O N E R R O R 命 令
当出现错误时 指定要执行的命令
语 法
ON ERROR
[ Command ] 参 数 描 述Command
指 定 应 执 行 的 V isual FoxPro 命 令 执 行 此 命 令 后 程 序 将 从 引 起 错 误 的 程 序
行 的 下 一 行 重 新 开 始 执 行 但 如 果 错 误 处 理 过 程 中 包 含 RETRY 则 重 新 执行 引 起 错 误 的 程 序 行
如果命令指定了错误出现时执行的一个过程 那么可以使用 ERROR ( )
MESSAGE( ) LINENO( ) 和 PROGRAM( ) 将错误代码 错误消息 程序引号以及程序
名称传递到此过程 这些信息可以用来纠正错误
说 明
若在程序运行时发生错误 Visual FoxPro 将执行 ON ERROR 中指定的命令 通常情况下 ON ERROR 使用 DO 来执行一个错误处理过程
用不带命令的 ON ERROR 可以恢复默认的 Visual FoxPro 错误处理程序
ERROR 过程不可嵌套 如果在 ON ERROR 过程中又发出了 ON ERROR 命令 则恢复默认的 Visual FoxPro 错误处理程序
示 例
ON ERROR DO errhand WITH ;
ERROR( ), MESSAGE( ), MESSAGE(1), PROGRAM( ), LINENO( )
*** 下行可能产生错误 *** USE nodatabase
ON ERROR && 系统错误处理
PROCEDURE errhand
PARAMETER merror, mess, mess1, mprog, mlineno CLEAR
? 'Error number: ' + LTRIM(STR(merror))
? 'Error message: ' + mess
? 'Line of code with error: ' + mess1
? 'Line number of error: ' + LTRIM(STR(mlineno))
? 'Program with error: ' + mprog
请 参 阅
AERROR ( ), COMRETURNERROR( ), DO, ERROR( ), FUNCTION,
LINENO( ), MESSAGE( ), PROGRAM( ), PROCEDURE, RETRY