OpenVMS DCL命令HELP ON EXAMPLE
显示:
在
实施例
1.$ ON SEVERE_ERROR THEN CONTINUE A command procedure that contains this statement continues to execute normally when a warning or error occurs during execution. When a severe error occurs, the ON statement signals the procedure to execute the next statement anyway. Once the statement has been executed as a result of the severe error condition, the default action (ON ERROR THEN EXIT) is reinstated.
根据帮助,如果[-]x.for
和[-]y.for
都不存在,那么最后两行将不会被执行:
$ on error then $ continue
$ rename [-]x.for []
$ rename [-]y.for []
$ type *.for
有没有办法在第一行中设置ON ERROR
处理,而不在脚本的每一行之间放置ON ERROR
语句?
答案 0 :(得分:4)
如果ON ERROR触发,则必须重新建立它。它看起来像你 不知道是否存在任何文件。所以ON ERROR需要 在第一次失败的命令后重新建立。
您可以在子程序中执行此操作,例如:
$ on error then $ gosub on_error
$ rename [-]x.for []
$ rename [-]y.for []
$ on error then $ exit
$ type *.for
$ exit
$
$ on_error:
$ on error then $ gosub on_error
$ return
此外,您可以通过禁用错误检查(SET NOON):
$ set noon
$ rename [-]x.for []
$ rename [-]y.for []
$ set on
$ type *.for
或仅为服务器错误建立错误处理(ON SEVERE_ERROR):
$ on severe_error then $ exit
$ rename [-]x.for []
$ rename [-]y.for []
$ on error then $ exit
$ type *.for