版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、模塊化技術(shù)與異常處理模塊化:a)好處有三:使程序更加的清晰,易讀,易于維護。實現(xiàn)代碼的復(fù)用。實現(xiàn)數(shù)據(jù)封裝,數(shù)據(jù)或功能僅通過接口與模塊外部發(fā)生聯(lián)系,這也相應(yīng)地增加了程序的可讀寫和可維護性。b)分類:i.子程序ii.功能模塊子程序:子程序的定義方式:using參數(shù)名type類型using參數(shù)名using參數(shù)名changing參數(shù)名Form(子程序名)Form(子程序名)Form(子程序名)Endform.在調(diào)用此form時,調(diào)用的方式為:Perform子程序名.注意:當(dāng)定義的子程序有輸入和輸出參數(shù)的時候。一定要保持調(diào)用時傳入的參數(shù)和在定義子程序的參數(shù)的類型要一致。功能模塊:功能模塊建立的方法與過程
2、:進入功能函數(shù)的界面(t-code:se37或者se80一下以se80為準(zhǔn))先將建立的類型選擇為一個函數(shù)組:3.如果在以有的函數(shù)組下建立functiongroup的話。直接輸入所要建立的函數(shù)組名或者是已有的名字。函數(shù)組Z_TEST_SAP4輸入短文本,保存到本地對象。保存以后直接active本函數(shù)組。錯誤提示:REPORT/PROGRAMstatementmissing,orprogramtypeisI_(INCLUDE).如果出現(xiàn)此錯誤。那么函數(shù)組肯定是沒有active,進入se80對函數(shù)組active一下。就可以了。4.進入se37建立functiongroup。輸入已有的函數(shù)組。保存到本
3、地對象。進行對functiongroup的import、export、changing、tablelen進行設(shè)置。最后進入sourcecode標(biāo)簽進行對此functiongroup進行代碼的編輯。編碼結(jié)束,active后回執(zhí)行程序進行調(diào)試。在se38程序中調(diào)用此functiongroup時的方式為CALLFUNCTIONZ_SAP4_TEST_YYEXPORTINGINPUT_1=INPUT_2=*IMPORTINGOUTPUT變量的生存周期:在程序中可以定義全局變量和局部變量。當(dāng)全局變量和局部變量同名時,局部變量起作用,而全局變量的值不改變。還有一點就是如果當(dāng)調(diào)用一個form并且傳入其參數(shù)時
4、,而form中對其值進行修改,那么在另一個form中調(diào)用全局變量時,其值不變。也就是說,在form中對全局變量進行修改以后,其修改的值值存在于此form中。還可以建立靜態(tài)變量,建立的方式為:Static變量名type類型。在程序中建立一個靜態(tài)變量以后。無論時在程序中任何一個位置對其進行修改,那么其值會直接更新為修改以后的值。代碼的復(fù)用:代碼的復(fù)用可以大量的降低程序的耦合度,也可以讓程序更加的清晰,易于維護,在開發(fā)的代碼量也會相應(yīng)的減少。主要使用的方式有include程序、宏程序、functiongroup等方式。主要說一下宏程序。宏程序的建立方式:Define宏的名字.statementsEn
5、d-of-definition.在一個宏中可以調(diào)用多個宏,方式為。Define宏名字statements.調(diào)用宏的名字并給他所需要的占位符的個數(shù)End-of-definition.Define之前調(diào)用的宏名字statements.End-of-definition.注意:在一個宏中最多可以定義9個占位符。而占位符的方式是&1,&2&9.不可以遞歸調(diào)用,可以調(diào)用其他宏。異常處理:1.靜態(tài)異常這種異常引起的原因基本上是語法的錯誤,因此比較容易更改。2.運行時異常運行時異常的捕獲與處理:將需要處理異常的語句塊放在,非類異常如下:Catchsystem-exceptions非類異常的名字=數(shù)字.End
6、catch.ifsy-subrc=數(shù)字.進行異常處理.Endif.類的異常:dataMYREFtypereftoCX_SY_ARITHMETIC_ERROR.“定義一個異常類的對象dataERR_TEXTtypeSTRING.dataRESULTtypeI.try.RESULT=1/0.catchcx_sy_arithmetic_errorintoMYREF.ERR_TEXT=MYREF-GET_TEXT().endtry.類異常的異常類型與名字和從屬的關(guān)系:(Associatedsuperclass:CXSYARITHMETIC_ERROR)BCDZERODIVIDECXSYZERODIVI
7、DECOMPUTE_FLOAT_ZERODIVIDECX_SY_ZERODIVIDECOMPUTEINTZERODIVIDECX_SY_ZERODIVIDEADDFINTOVERFLOWCX_SY_ARITHMETIC_OVERFLOWBCDOVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTEBCDOVERFLOWCXSYARITHMETICOVERFLOWCOMPUTECOSHOVERFLOWCXSYARITHMETICOVERFLOWCOMPUTEEXPRANGECXSYARITHMETICOVERFLOWC0MPUTEFL0ATDIV0VERFL0WCX_SY
8、_ARITHMETIC_OVERFLOWCOMPUTEFLOATMINUSOVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTEFLOATPLUSOVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTEFLOATTIMESOVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTEINTABSOVERFLOWCXSYARITHMETICOVERFLOWCOMPUTEINTDIVOVERFLOWCXSYARITHMETICOVERFLOWCOMPUTEINTMINUSOVERFLOWCX_SY_ARITHMETIC_OVERF
9、LOWCOMPUTEINTPLUSOVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTEINTTIMESOVERFLOWCX_SY_ARITHMETIC_OVERFLOWC0MPUTE_L0G10_ERR0RCX_SY_ARITHMETIC_OVERFLOW,CXSYARGOUTOFDOMAINC0MPUTE_L0G_ERR0RCX_SY_ARITHMETIC_OVERFLOW,CXSYARGOUTOFDOMAINCOMPUTEMATHOVERFLOWCX_SY_ARITHMETIC_OVERFLOWCOMPUTEPOWRANGECX_SY_ARITHMETIC_OV
10、ERFLOWCOMPUTESINHOVERFLOWCX_SY_ARITHMETIC_OVERFLOWC0MPUTEAC0SD0MAINCXSYARGOUTOFDOMAINCOMPUTEASINDOMAINCXSYARGOUTOFDOMAINCOMPUTEATANDOMAINCXSYARGOUTOFDOMAINC0MPUTEC0SHD0MAINCXSYARGOUTOFDOMAINC0MPUTEC0SD0MAINCXSYARGOUTOFDOMAINCOMPUTEEXPDOMAINCXSYARGOUTOFDOMAINCOMPUTEMATHDOMAINCXSYARGOUTOFDOMAINC0MPUTE
11、P0WD0MAINCXSYARGOUTOFDOMAINCOMPUTESINHDOMAINCXSYARGOUTOFDOMAINCOMPUTESINDOMAINCXSYARGOUTOFDOMAINCOMPUTE_SQRT_DOMAINCXSYARGOUTOFDOMAINCOMPUTE_TANH_DOMAINCXSYARGOUTOFDOMAINCOMPUTECOSLOSSCX_SY_PRECISION_LOSSCOMPUTEMATHLOSSCX_SY_PRECISION_LOSSCOMPUTESINLOSSCXSYPRECISIONLOSSCOMPUTETANLOSSCXSYPRECISIONLOS
12、SBCDFIELDOVERFLOWCX_SY_CONVERSION_OVERFLOWExceptiongroup:CONVERSION_ERRORS(Associatedsuperclass:CX_SY_CONVERSION_ERROR)BCDFIELDOVERFLOWCX_SY_CONVERSION_OVERFLOWCONVTOVERFLOWCX_SY_CONVERSION_OVERFLOWCONVTCODEPAGECXSYCONVERSIONCODEPAGECONVTNONUMBERCXSYCONVERSIONNONUMBERBCD_OVERFLOWCX_SY_ARITHMETIC_OVE
13、RFLOWExceptiongroup:CREATE_DATA_ERRORS(Associatedsuperclass:CX_SY_CREATE_ERROR)Thisgroupcontainsruntimeerrorsthatmayoccurduringthecreationofdataobjects.CREATE_DATA_UNKNOWN_TYPECX_SY_CREATE_DATA_ERRORCREATE_DATA_NOT_ALLOWED_TYPECX_SY_CREATE_DATA_ERRORCREATEDATALENNOTALLOWEDCX_SY_CREATE_DATA_ERRORCREA
14、TEDATAILLEGALLENGTHCX_SY_CREATE_DATA_ERRORCREATEDATAILLEGALDECIMALSCXSYCREATEDATAERRORCREATEDATAILLEGALINITSIZECXSYCREATEDATAERRORExceptiongroup:CREATE_OBJECT_ERRORS(Associatedsuperclass:CX_SY_CREATE_ERROR)Thisgroupcontainsruntimeerrorsthatmayoccurduringthecreationofobjects.CREATEOBJECTCLASSNOTFOUND
15、CXSYCREATEOBJECTERRORCREATEOBJECTCLASSABSTRACTCX_SY_CREATE_OBJECT_ERRORCREATEOBJECTCREATEPRIVATECX_SY_CREATE_OBJECT_ERRORCREATEOBJECTCREATEPROTECTEDCX_SY_CREATE_OBJECT_ERRORExceptiongroup:DATA_ACCESS_ERRORS(Associatedsuperclass:CX_SY_DATA_ACCESS_ERROR)Thisgroupcontainsruntimeerrorsthatmayoccurduring
16、subfieldaccess(withoffset/length)todataobjects.DATAOFFSETNEGATIVECX_SY_RANGE_OUT_OF_BOUNDSDATALENGTHNEGATIVECXSYRANGEOUTOFBOUNDSDATALENGTH0CXSYRANGEOUTOFBOUNDSDATALENGTHTOOLARGECX_SY_RANGE_OUT_OF_BOUNDSDATA_OFFSET_LENGTH_TOO_LARGECX_SY_RANGE_OUT_OF_BOUNDSREFIWRONGSECTIONCX_SY_RANGE_OUT_OF_BOUNDSSTRI
17、NGOFFSETNEGATIVECX_SY_RANGE_OUT_OF_BOUNDSSTRINGOFFSETTOOLARGECXSYRANGEOUTOFBOUNDSSTRINGLENGTHNEGATIVECXSYRANGEOUTOFBOUNDSSTRINGLENGTHTOOLARGECX_SY_RANGE_OUT_OF_BOUNDSSTRINGOFFSETLENGTHTOOLARGECXSYRANGEOUTOFBOUNDSDATAOFFSETLENGTHNOTALLOWEDCXSYOFFSETNOTALLOWEDSinceasubfieldaccesscanoccurinalmostallsta
18、tements,nokeywordscanbeassigned.Exceptiongroup:DYNAMIC_CALL_METHOD_ERRORS(Associatedsuperclass:CX_SY_DYN_CALL_ERROR)Thisgroupcontainsruntimeerrorsthatmayoccurduringadynamicmethodcall.Thesearenormallyerrorsthattriggerasyntaxerrorifthecallisstatic.DYNCALLMETHCLASSABSTRACTCXSYDYNCALLILLEGALCLASSDYNCALL
19、METHCLASSNOTFOUNDCXSYDYNCALLILLEGALCLASSDYNCALLMETHCLASSCONSTRUCTORCX_SY_DYN_CALL_ILLEGAL_METHODDYNCALLMETHCONSTRUCTORCX_SY_DYN_CALL_ILLEGAL_METHODDYNCALLMETHNOTFOUNDCX_SY_DYN_CALL_ILLEGAL_METHODDYNCALLMETHNOCLASSMETHODCX_SY_DYN_CALL_ILLEGAL_METHODDYNCALLMETHPRIVATECX_SY_DYN_CALL_ILLEGAL_METHODDYNCA
20、LLMETHPROTECTEDCXSYDYNCALLILLEGALMETHODDYNCALLMETHEXCPNOTFOUNDCXSYDYNCALLEXCPNOTFOUNDDYNCALLMETHPARAMKINDCX_SY_DYN_CALL_ILLEGAL_TYPEDYNCALLMETHPARAMLITLMOVECXSYDYNCALLILLEGALTYPEDYNCALLMETHPARAMTABTYPECXSYDYNCALLILLEGALTYPEDYNCALLMETHPARAMTYPECXSYDYNCALLILLEGALTYPEDYNCALLMETHPARAMMISSINGCXSYDYNCALLP
21、ARAMMISSINGDYN_CALL_METH_PARREF_INITIALCX_SY_DYN_CALL_PARAM_MISSINGDYNCALLMETHPARAMNOTFOUNDCXSYDYNCALLPARAMNOTFOUNDDYNCALLMETHREFISINITIALCX_SY_REF_IS_INITIALThefollowingkeywordsareassignedtothisexceptiongroup:CALLMETHODExceptiongroup:FILE_ACCESS_ERRORS(Associatedsuperclass:CX_SY_FILE_ACCESS_ERROR)T
22、hisgroupcontainsruntimeerrorsthatmayoccurduringfileaccess.Typicalexamplesareifthesystemcannotfindthefile,ifnomorespaceisavailabletowriteorcreatethefile,oriftheauthorizationtoaccessthefileismissing.DATASETCANTCLOSECX_SY_FILE_CLOSEDATASETCANTOPENCX_SY_FILE_OPENEXPORTDATASETCANNOTOPENCX_SY_FILE_OPENDAT
23、ASETWRITEERRORCX_SY_FILE_IODATASETREADERRORCXSYFILEIOEXPORTDATASETWRITEERRORCXSYFILEIODATASETSEEKERRORCX_SY_FILE_POSITIONDATASETNOPOSITIONCX_SY_FILE_POSITIONDATASETREADONLYCX_SY_FILE_OPEN_MODEDATASETNOTOPENCX_SY_FILE_OPEN_MODEOPENDATASETNOAUTHORITYCXSYFILE_AUTHORITYOPENPIPENOAUTHORITYCXSYFILE_AUTHOR
24、ITYDATASET_TOO_MANY_FILESCX_SY_TOO_MANY_FILESDATASET_NO_PIPECX_SY_PIPES_NOT_SUPPORTEDExceptiongroup:IMPORT_MISMATCH_ERRORS(Commonclass:CXSIMPORTMISMATCHERROR)ThisgroupcontainsruntimeerrorsthatmayoccurduringtheimportofdatafromtheABAPmemory,fromthedatabase,fromtheSHAREDBUFFER,orfromafileifthetypeorthe
25、lengthofthedatastoredisnotidenticalwiththatofthetargettype.CONNEIMPORTWRONGCOMPDECSCXSYIMPORTMISMATCHERRORCONNEIMPORTWRONGCOMPLENGCX_SY_IMPORT_MISMATCH_ERRORCONNEIMPORTWRONGCOMPTYPECX_SY_IMPORT_MISMATCH_ERRORCONNEIMPORTWRONGFIELDDECSCX_SY_IMPORT_MISMATCH_ERRORCONNEIMPORTWRONGFIELDLENGCX_SY_IMPORT_MI
26、SMATCH_ERRORCONNEIMPORTWRONGFIELDTYPECXSYIMPORTMISMATCHERRORCONNEIMPORTWRONGOBJECTTYPECXSYIMPORTMISMATCHERRORCONNE_IMPORT_WRONG_STRUCTURECX_SY_IMPORT_MISMATCH_ERRORIMPORT_ALIGNMENT_MISMATCHCX_SY_IMPORT_MISMATCH_ERRORIMPORTWRONGENDPOSCX_SY_IMPORT_MISMATCH_ERRORExceptiongroup:LOCALIZATION_ERRORS(Commo
27、nclass:CX_SY_LOCALIZATION_ERROR)Thisgroupcontainsruntimeerrorsthatmayoccurwhenyouswitchtoanothertextenvironment.Typicalexamplesareiftherequiredlanguageisnotallowedorifthesystemwantstoswitchtoacharactersetwhichhasnotbeenreleased.TEXTENVCODEPAGENOTALLOWEDCX_SY_LOCALIZATION_ERRORTEXTENVINVALIDCX_SY_LOC
28、ALIZATION_ERRORTEXTENVKEYINVALIDCXSYLOCALIZATIONERRORExceptiongroup:REMOTE_CALL_ERRORS(Associatedsuperclass:CX_SY_REMOTE_CALL_ERROR)Thisgroupcontainsruntimeerrorsthatmayoccurduringcallsinremotesystems(currentlyonlyCALLMETHOD).Typicalexamplesarenetworkerrorsortheunexpectedterminationoftheconnection.R
29、MCCOMMUNICATIONFAILURECX_SY_RMC_COMM_FAILURERMCINVALIDSTATUSCX_SY_RMC_INVALID_STATUSRMCSYSTEMFAILURECXSYRMCSYSTEMFAILURECALLMETHODNotassignedtoanexceptiongroup:ASSIGNCASTINGILLEGALCASTCXSYASSIGNCASTILLEGALCASTASSIGNCASTINGUNKNOWNTYPECXSYASSIGNCASTUNKNOWNTYPEASSIGNFIELDNOTINRANGECX_SY_ASSIGN_OUT_OF_R
30、ANGEDATASETOFFSETTOOLARGECX_SY_FILE_POSITIONDYNCALLMETHNOTIMPLEMENTEDCX_SY_DYN_CALL_ILLEGAL_METHODEXPORTBUFFERNOMEMORYCX_SY_EXPORT_BUFFER_NO_MEMORYGENERATESUBPOOLDIRFULLCXSYGENERATESUBPOOLFULLMOVECASTERRORCXSYMOVECASTERRORPERFORMPROGRAMNAMETOOLONGCXSYPROGRAMNOTFOUNDREPLACEINFINITELOOPCX_SY_REPLACE_I
31、NFINITE_LOOPI|-CX_SY_GEN_SOURCE_TOO_WIDEI|-CX_SY_GEN_SOURCE_TOO_WIDE|-CX_SY_CREATE_ERROR6、類異常類樹CX_SY_ROOT|-cx_static_check|-CX_DYNAMIC_CHECK|-CX_SY_ARITHMETIC_ERROR|-CX_SY_ZERODIVIDE|-CX_SY_ARITHMETIC_OVERFLOW|CXSYARGOUTOFDOMAJN|-CX_SY_PRECISION_LOSS|I-cx_sy_assign_errorTOC o 1-5 h z|-CX_SY_ASSIGN_C
32、AST_ERROR|-CX_SY_ASSIGN_CAST_ILLEGAL_CAST|-CX_SY_ASSIGN_CAST_UNKNOWN_TYPE|-CX_SY_ASSIGN_OUT_OF_RANGE|-CX_SY_CODEPAGE_CONVERTER_INIT|-CX_SY_CONVERSION_ERROR|-CX_SY_CONVERSION_OVERFLOW|-CX_SY_CONVERSION_NO_NUMBER|-CX_SY_CONVERSION_CODEPAGE|-CX_SY_CONVERSION_BASE64|-CX_SY_CONV_ILLEGAL_DATE_TIME|TOC o 1-5 h z|-CX_SY_CREATE_OBJECT_ERROR|-CX_SY_CREATE_DATA_ERROR|-CX_SY_DATA_ACCESS_ERROR|-CX_SY_RANGE_OUT_OF_BOUNDS|-CX_SY_OFFSET_NOT_ALLOWED|-CX_SY_DYN_CALL_ERROR|-CX_SY_DYN_CALL_ILLEGAL_CLASS|-CX_SY_DYN_CALL_ILLEGAL_FUNC|-cx_sy_dyn_call_illegal_method|-CX_SY_DYN_CALL_PA
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學(xué)排球隊訓(xùn)練方案
- 2023年長沙市瀏陽市招聘衛(wèi)健系統(tǒng)專業(yè)人才考試真題
- 2023年永州市消防救援支隊招錄政府專職消防員筆試真題
- 2023年寧波市江北區(qū)衛(wèi)生健康系統(tǒng)招聘事業(yè)編制人員考試真題
- 2023年杭州市中醫(yī)院招聘高層次緊缺專業(yè)崗位招聘考試真題
- 2023年阿壩州衛(wèi)生健康委員會招聘衛(wèi)生專業(yè)技術(shù)人員筆試真題
- 鋼琴供貨計劃及售后服務(wù)方案
- 廠房模板工程施工方案
- 河南寶豐縣生活垃圾收運處理一體化PPP項目實施方案
- 醫(yī)院防汛防臺的檢查工作總結(jié)
- 城市軌道交通列車自動控制系統(tǒng)維護 課件 3.1 ZC系統(tǒng)認(rèn)知
- 2024年山東省青島中德生態(tài)園(青島國際經(jīng)濟合作區(qū))管委會選聘52人歷年高頻難、易錯點500題模擬試題附帶答案詳解
- 《全面質(zhì)量管理》習(xí)題集(含答案)
- 汽車行業(yè)金融服務(wù)方案
- 生命體征課件教學(xué)課件
- 1.2 規(guī)劃初中生活(2024年秋版)
- 2024年國家機關(guān)事務(wù)管理局機關(guān)服務(wù)中心招聘歷年高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 2024年勞資員題庫
- Unit 3 Family Matters Developing Ideas Writing about a Family Memory 教學(xué)設(shè)計-2024-2025學(xué)年高一上學(xué)期英語外研版(2019)必修第一冊
- 流體力學(xué)期末復(fù)習(xí)試題含答案(大學(xué)期末復(fù)習(xí)資料)
- 《直播運營實務(wù)》 課件 5.3直播間場景搭建
評論
0/150
提交評論