abap中的异常处理.docx

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
abap中的异常处理

中的异常处理作者:dyq_972 提交日期:2008-4-15 9:39:00 | 分类: | 访问量:895   在平时的ABAP开发中,需要捕获的异常通常为两种,一种是执行SQL,比如主键重复,INSERT语句字段类型不匹配等。还有就是RFC的通信错误,比如不能进行远程连接等。通常可以这么处理:1.数据库异常:  DATA: lcx_error TYPE REF TO cx_root. cx_sy_sql_error . cx_sy_open_sql_db.  DATA i_tab LIKE TABLE OF spfli WITH HEADER LINE.  DATA err_text TYPE c LENGTH 1000.     TRY.   INSERT spfli FROM TABLE i_tab.   CATCH cx_sy_open_sql_db INTO lcx_error.   err_text = lcx_error-get_text( ). 得到错误信息   sy-subrc = 4. 改变系统变量   ENDTRY.     IF sy-subrc 0.   WRITE :/ 数据更新失败!.   WRITE err_text.   ROLLBACK WORK.   ELSE.   WRITE :/ 数据更新成功!.   COMMIT WORK.   ENDIF.2.RFC异常:TRY.CALL FUNCTION Z_DAQ_CALL_JCODESTINATION ZJCOSERVER_DAQEXPORTINGpv_empid = l_empidIMPORTINGpv_rlt = l_rltTABLESit_spfli = i_tabEXCEPTIONSsystem_failure = 1 MESSAGE err_textcommunication_failure = 2 MESSAGE err_text.ENDTRY.IF SY-SUBRC 0.WRITE: / 调用***失败! , err_text.ENDIF.详细的信息可以参加下面的内容:/CompassButton/archive/2007/04/03/1550818.aspx1、异常分类从sap 6.10开始,abap的异常分为两类:1)基于异常类的异常,2)非类异常。非类异常又分为系统定义异常(如:被0除异常)和用户自定义异常(用户自定义函数中由exception语句定义,raise语句产生的异常)。异常有的是可以截获处理,用户可以截获做相应处理,系统将可以继续执行程序。如果用户不处理,系统将产生错误,并停止执行程序。有的异常为不可截获的错误异常,系统将直接产生错误,并停止执行程序。2、异常处理语句基于类异常相关语句:a)TRY. ... guarded section CATCH cx11 ... cx1n [INTO ex1]. ... handlers for exceptions cx11 to cx1n CATCH cx21 ... cx2m [INTO ex2]. ... handlers for exceptions cx21 bis cx2m ... other handlers CLEANUP. ... cleanup block ENDTRY. b)RAISE EXCEPTION TYPE class. c)RAISING cx1 ... cxn非类异常相关语句:a)catch system-exceptions ARITHMETIC_ERRORS = 4. endcatch. c) raise (In function or method)3、异常截获处理方法Handling exceptions using/with exception classes 截获处理方法data MYREF type ref to CX_SY_ARITHMETIC_ERROR. data ERR_TEXT type STRING. data RESULT type I. try. RESULT = 1 / 0. catch cx_sy_arithmetic_error into MYREF. ERR_TEXT = MYREF-GET_TEXT( ). endtry. Handling exceptions as catchable runtime errors (向后兼容6.10)此异常处理sap建议使用try...endtry代替(错误和异常类对应关系参见第5部分)。data RESULT type I. catch system-exceptions ARITHMETIC_ERRORS = 4. RESULT = 1 / 0.

文档评论(0)

xxj1658888 + 关注
实名认证
内容提供者

教师资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年04月12日上传了教师资格证

1亿VIP精品文档

相关文档