ABAP語言中Check、Stop、Exit、Continue、Return、Reject的用法和區別


在SAP ABAP開發中經常會使用到CHECK、STOP、EXIT、continue、return、reject,這些語句的作用、用法以及相互的區別是什么呢,現在簡單匯總如下:

1, stop

使用該命令的程序位置
INITIALIZATION, AT SELECTION-SCREEN, START-OF-SELECTION和GET 事件中
處理說明:
1)當在INITIALIZATION事件執行該命令,系統將直接觸發應用服務器和客戶端屏幕元素的發送;
2)在其他事件中將直接觸發END-OF-SELECTION事件的執行,如果不想執行END-OF-SELECTION,請使用RETURN或者 EXIT.

2, exit

使用該命令的程序位置
用於循環和程序模塊中:DO和其他處理模塊中(event block, dialog module, procedure (function module, method, subroutine))…ENDDO,WHILE…ENDWHILE,LOOP…ENDLOOP,SELECT…ENDSELECT
處理說明
1、 循環處理中,EXIT只跳出當前的循環;
2、 在START-OF-SELECTION, GET, END-OF-SELECTION事件中,將直接觸發List輸出,將不執行END-OF-SELECTION事件;如果沒有List輸出,系統將直接返回選擇屏幕;
3、 對於procedure系統返回調用處;
注意事項
SAP推薦EXIT只是用於循環處理,對於處理模塊請使用Return。

3, return

使用該命令的程序位置
用於處理模塊中(event block, dialog module, procedure (function module, method, subroutine))
處理說明
1、 對於procedure ,RETURN將無條件退出當前的處理模塊,不影響后續模塊的執行;
2、 對於START-OF-SELECTION, GET, END-OF-SELECTION事件中,將直接觸發List輸出,將不執行END-OF-SELECTION事件;如果沒有List輸出,系統將直接返回選擇屏幕;
注意事項
RETURN不管存在多少層次的循環,將直接退出當前處理模塊,這一點和EXIT不同。

4, check

使用該命令的程序位置
用於循環和程序模塊中:DO和其他處理模塊中(event block, dialog module, procedure (function module, method, subroutine))…ENDDO,WHILE…ENDWHILE,LOOP…ENDLOOP,SELECT…ENDSELECT
處理說明
1、 循環處理中,CHECK只是不執行本次循環的后續處理,繼續調到下一次循環;
2、 在START-OF-SELECTION, GET, END-OF-SELECTION事件中,只是中斷本事件內的后續代碼的執行 ,不影響其他后續模塊的處理,這和EXIT,RETURN是不同的;
3、 對於沒有循環procedure系統返回調用處;
4、 對邏輯數據庫的GET事件,系統退出本次紀錄和子節點的讀取處理,將繼續下一條紀錄的處理;
注意事項
Sap推薦CHECK只是用於循環處理,對於處理模塊請使用Return。
區別:在LOOP 中 check 只是不執行本次循環的后續處理,繼續調到下一次循環;
EXIT只跳出當前的循環繼續執行loop外的語句。
return 跳出form了
在form 中 三種效果一樣都跳到下個PERFORM frm_test
在事件中 CHECK  在START-OF-SELECTION, GET, END-OF-SELECTION事件中,只是中斷本事件內的后續代碼的執行 ,不影響其他后續模塊的處理
在事件中, exit,return 在START-OF-SELECTION, GET, END-OF-SELECTION事件中,將直接觸發List輸出,將不執行END-OF-SELECTION事件;如果沒有List輸出,系統將直接返回選擇屏幕。

5, continue

使用在loop,do,while等循環語句中,含義是結束當前循環,進入到下一次循環。

也可以用check來代替,符合check條件,接着執行本次循環,不符合check的,結束當前循環進入到下次循環。

6, reject

使用該命令的程序位置
用於邏輯數據庫的GET處理事件中
處理說明
REJECT的處理類似CHECK,但和CHECK不同的是:REJECT如果在循環內也同樣退出本次的處理,而CHECK只是退出循環,不退出處理。

以上。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM