2014-12-11 2 views
1

OpenVMSDCL 명령 HELP ON EXAMPLE 표시 :첫 번째 오류가 발생한 후 DCL ON ERROR 작업을 처리합니까?

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. 

ON

[-]x.for[-]y.for 다음 마지막 두 줄이 실행되지 않습니다 존재하는 경우 도움에 따르면 :

$ on error then $ continue 
$ rename [-]x.for [] 
$ rename [-]y.for [] 
$ type *.for 

스크립트의 각 줄 사이에 ON ERROR 문을 삽입하지 않고 첫 줄에 ON ERROR 처리를 설정하는 방법이 있습니까?

답변

4

ON 오류가 발생하면 다시 설정해야합니다. 파일이 있는지 여부를 알 수 없습니다. 따라서 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) :

$ 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 
관련 문제