退出AS400 cobol中的程序仍然继续运行

问题描述 投票:0回答:1

我不知道为什么退出程序后后续部分仍在运行。

这是我的代码:


       IDENTIFICATION DIVISION.                                   
       PROGRAM-ID. PGM2.                                      
      /                                                           
       ENVIRONMENT DIVISION.                                      
       CONFIGURATION SECTION.                                     
       SOURCE-COMPUTER.                                IBM-AS400. 
       OBJECT-COMPUTER.                                IBM-AS400. 
      /                                                           
       DATA DIVISION.                                             
       WORKING-STORAGE SECTION.                                   
       01  WS-VARS                        PIC X(10).              
      /                                                           
       PROCEDURE DIVISION.                                        
       000-MAIN SECTION.                                          
      ******************                                          
       010-START.                                                 
      *                                                           
           INITIALIZE WS-VARS.                                    
      *                                                           
       090-EXIT.                                                  
           EXIT PROGRAM.                                          
      /                                                           
       200-WRITE-LINE SECTION.       
      ************************       
       210-START.                    
      *                              
           DISPLAY 'STILL RUNNING'.  
      *                              
       290-EXIT.                     
           EXIT.                     
      /

该程序正在另一个程序中被调用。退出程序后,我希望它返回到调用它的程序,但它仍在继续运行。请帮助我理解为什么。

编辑:我发现如果调用程序是另一个COBOL程序,它将按照我的预期退出该程序。但似乎如果调用程序是CLP,则EXIT PROGRAM不会退出。

ibm-midrange cobol
1个回答
0
投票

这是因为

EXIT PROGRAM
只将程序留给 COBOL 调用者。

您想要做的(几乎在所有情况下)是使用

GOBACK
,因为它总是离开运行单元,无论它是如何调用的。如果是从 COBOL
CALL
编辑而来,则与
EXIT PROGRAM
效果相同,否则与
STOP RUN
相同。

© www.soinside.com 2019 - 2024. All rights reserved.