COBOL 프로그램을 통해 의도적으로 비정상 종료 할 수 있습니까? 헤더, 세부 정보 및 예고편 레코드가있는 입력 파일이 있다고 가정합니다. 이 파일을 읽는 COBOL pgm을 쓸 것입니다.이 파일에 세부 레코드가 없으면 일부 비정상 종료 메시지와 비정상 종료 코드를 제공하여 작업을 중단하고 싶습니다. 가능한가요?의도적으로 비정상 종료하는 방법
답변
프로그램을 중단하거나 RETURN-CODE을 설정 하시겠습니까?
내가 메시지 을을 writting 다음 STOP RUN
또는 GOBACK
비아 프로그램을 종료하는 RETURN-CODE를 설정 의심하는 것은 당신이 정말로 원하는 모든 것을입니다. 실제 ABEND가 필요하지 않을 수도 있습니다.
IBM 배치 환경에서 프로그램에 의해 설정된 RETURN-CODE는 프로그램이 실행 된 JCL 작업 단계에 대한 RC가됩니다. 이것은 일반적으로 당신이 설정하고 테스트하려는 입니다.
RETURN-CODE
은 숫자 값으로 MOVE
으로 설정됩니다. 예를 들어 :
DISPLAY 'No Detail Records found in file.'
MOVE 16 TO RETURN-CODE
GOBACK.
는 또한 CEE3DMP--Generate dump 유틸리티를 사용하여 언어 환경에서 실행하는 프로그램 (IBM 메인 프레임 옵션)에서 프로그램 덤프를 발행 할 수있다.
이전 IBM 메인 프레임 COBOL 프로그램에서 ILBOABN0
루틴 호출을 볼 수 있습니다. 이 전화 이 프로그램을 이상 종료하고 덤프를 발행했습니다. 이 루틴은 이제 위에 요약 된 기법을 사용하여 depreciated입니다.
마지막으로 실제로 오래된 프로그램에는 이상 종료가 생성되는 코드가있을 수 있습니다. 이 방법의 수에서 수행 할 수 있지만, 0으로 나누기는 종종 마음에 드는 이었다
DIVIDE SOME-NUMBER BY ZERO GIVING SOME-NUMBER.
때마다 작품!
개인적으로는 ILBOABN0
이나 데이터 예외 기술을 통해 RETURN-CODE
을 설정하는 것이 좋습니다.
참고 : RETURN-CODE 특수 레지스터는 COBOL-85 표준의 일부가 아닙니다. IBM 확장 언어로 사용할 수 있습니다. 비 IBM 호환 환경에서 작업하는 경우 다른 메커니즘을 사용해야 할 수도 있습니다.
Abened 코드를 강제로 적용 할뿐만 아니라 JCL 작업 단계로 다시 전달 된 리턴 코드를 설정하는 방법에 대한 다음 링크를 참조하십시오. http://www.tek-tips.com/viewthread.cfm?qid=1058302&page=22
실행이 비정상적으로 끝나는 한 가지 방법은 프로그램이있는 컴퓨터의 유형에 따라 메시지를 사용자 단말기 또는 메인 프레임 컴퓨터 센터의 운영자에게 출력하고 필요한 경우 프린터에 출력하는 것입니다 계속 달릴거야. cobol에서는 DISPLAY UPON ..을 사용할 수 있으며 ENVIRONMENT DIVISION의 SPECIAL-NAMES 섹션에있는 항목에 정의 된대로 터미널, 운영자 콘솔 또는 프린터에 대한 식별자를 사용할 수 있습니다.운영에 OUT-OP2 및 DISPLAY "보고서에 -"상세 기록, 중단 RUN 오류 "예 운영자 콘솔 디스플레이와 특수 이름에 OUT-OP2 귀하의 경우에 대한 올바른 장치 이름을 사용하여이 유사 할 수있다 MANAGER "OUT-OP2 및 STOP RUN이됩니다. 프로 시저 부문. 상황에 참조는 어떤 직업이나 매크로 및 작동 지침에 포함시킬 필요가있다.
첫째, 당신은 당신의 자신의 상점의/사이트의 작업 표준에 의해 허용되는 것을 확인해야합니다. 대부분의 팀은 이미 의도적으로 '논리'이유로 프로그램을 파기하는 허용 된 방법을 가질 것입니다. 나는에서 근무 한 회사는 그냥 프로그램 비정상 종료로라고 어셈블러로 작성된 것으로 판단 SYSABND2라는 아주 간단한 프로그램을 가지고 있습니다. 말했다
, 이상 종료 (그냥 설정 리턴 코드)에, 당신은 모듈 CEE3ABD (또는 현재 사용되지 않으며 이전 버전 ILBOABN0) 호출해야합니다.
대한 자세한 내용은 다음을 참조하십시오
예, 그것은 단순히 존재하지 않는 하나 개의 모듈을 호출하여 COBOL 프로그램을 통해 의도적으로 이상 종료 작업을 할 수 있습니다. S806 abend 코드를 제공합니다.
프로그램에서 동적 호출을 사용하지 않으면 어떻게됩니까? S806은 어떻게 생성됩니까? –
- 1. 의도적으로 COM 개체를 크래킹하는 방법
- 2. Java로 OS를 종료하는 방법
- 3. catch 예외를 종료하는 방법
- 4. iPhone에서 앱을 종료하는 방법
- 5. vbscript에서 프로세스를 종료하는 방법
- 6. vim에서 buf를 종료하는 방법
- 7. if 절을 종료하는 방법
- 8. 프로세스를 종료하는 방법
- 9. 복구 할 수없는 오류를 표시하고 종료하는 방법
- 10. 의도적으로 느린 MATLAB 기능?
- 11. 의도적으로 opencv 버전을 혼합했습니다.
- 12. 의도적으로 버그가있는 코드 (Python)
- 13. 의도적으로 중복 마이그레이션 만들기
- 14. 자체 Windows 서비스를 종료하는 방법
- 15. 우리의 응용 프로그램을 종료하는 방법
- 16. 워크 플로를 강제 종료하는 방법?
- 17. 응용 프로그램을 올바르게 종료하는 방법
- 18. 클릭시 jquery 함수를 종료하는 방법
- 19. Android : 프로그램을 완전히 종료하는 방법?
- 20. Android :: 서비스를 강제 종료하는 방법
- 21. 자바 스크립트에서 세션을 종료하는 방법
- 22. 재귀 루프 종료에서 종료하는 방법
- 23. iphone에서 api 통화를 종료하는 방법
- 24. netbeans에서 톰캣 5.5를 종료하는 방법
- 25. 비정상 종료시에도 UnhookWindowsHookEx가 호출되도록하려면 어떻게해야합니까?
- 26. 의도적으로 Spring 빈을 null로 설정한다.
- 27. 의도적으로 버그가있는 코드 조각을 찾고
- 28. Python : 영구 연결을 사용하여 스레드 된 HTTP 서버를 종료하는 방법 (다른 스레드에서 readline()을 종료하는 방법)?
- 29. 파서 연결자 : 키워드의 반복을 종료하는 방법
- 30. 프로그래밍 방식으로 Windows Mobile 장치를 종료하는 방법
ILBOABN0는 (링크 된 페이지에서 언급 한) 지금은 사용되지 않습니다. 외부 링크는 대답이 아니므로 여기에 요약해야합니다. 더 유쾌한 것 외에도 사이트와 연결된 사이트는 항상 주변에 머 무르지 않는 경향이 있습니다. "tek-tips.com"에 대한 구글과 당신은 사람들이 불평했다 적어도 두 개의 정지 기간의 언급 찾을 수 있습니다. – Abacus