O N E R R O R 命 令

O N E R R O R 命 令 - 图1O N E R R O R 命 令 - 图2当出现错误时 指定要执行的命令

语 法

ON ERROR

[ Command ] 参 数 描 述Command

O N E R R O R 命 令 - 图3O N E R R O R 命 令 - 图4指 定 应 执 行 的 V isual FoxPro 命 令 执 行 此 命 令 后 程 序 将 从 引 起 错 误 的 程 序

O N E R R O R 命 令 - 图5O N E R R O R 命 令 - 图6O N E R R O R 命 令 - 图7行 的 下 一 行 重 新 开 始 执 行 但 如 果 错 误 处 理 过 程 中 包 含 RETRY 则 重 新 执行 引 起 错 误 的 程 序 行

O N E R R O R 命 令 - 图8O N E R R O R 命 令 - 图9如果命令指定了错误出现时执行的一个过程 那么可以使用 ERROR ( )

O N E R R O R 命 令 - 图10O N E R R O R 命 令 - 图11O N E R R O R 命 令 - 图12MESSAGE( ) LINENO( ) 和 PROGRAM( ) 将错误代码 错误消息 程序引号以及程序

O N E R R O R 命 令 - 图13O N E R R O R 命 令 - 图14名称传递到此过程 这些信息可以用来纠正错误

说 明

O N E R R O R 命 令 - 图15O N E R R O R 命 令 - 图16O N E R R O R 命 令 - 图17O N E R R O R 命 令 - 图18若在程序运行时发生错误 Visual FoxPro 将执行 ON ERROR 中指定的命令 通常情况下 ON ERROR 使用 DO 来执行一个错误处理过程

O N E R R O R 命 令 - 图19用不带命令的 ON ERROR 可以恢复默认的 Visual FoxPro 错误处理程序

O N E R R O R 命 令 - 图20O N E R R O R 命 令 - 图21O N E R R O R 命 令 - 图22ERROR 过程不可嵌套 如果在 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