面向对象的abap-基础学习01

1.ABAP程序运行过程

abap 程序运行在SAP的应用服务器中,应用服务器运行时系统负责处理abap语句,控制逻辑,数据库的访问和响应事件。

abap抓取异常消息

DATA:
  gv_exerf  TYPE REF TO cx_root,     "定义一个类(接口) 的对象
  gv_result TYPE p LENGTH  8 DECIMALS 2,
  gv_txt    TYPE string.

DATA:
  gv_s_number    TYPE string VALUE '1234567890',
  gv_position_11 TYPE i VALUE 11.

CLEAR:
      gv_exerf,
      gv_result,
      gv_txt.
TRY.
    gv_result = 1 / 0.   "抓取异常
  CATCH  cx_root INTO gv_exerf .   "抛出异常
    gv_txt = gv_exerf->get_text( ).   "对象调用方法
    WRITE : / gv_txt.
ENDTRY.
CLEAR:
      gv_s_number,
      gv_txt.

TRY.
    gv_s_number = gv_s_number(gv_position_11).
  CATCH cx_root INTO gv_exerf .
    gv_txt = gv_exerf->get_text( ).
    WRITE: / gv_txt.
ENDTRY.

write 和 write at 语法

DATA: len      TYPE i VALUE 10,
      pos      TYPE i VALUE 11,
      text(10) VALUE '1234567890'.
WRITE 'The text ------------ appears in the text.'.
注,这里的AT关键字不能省略,因为后面的pos len为变量,而不是直接量
WRITE AT pos(len) text."可以重新绘制屏幕,覆写已经输入的内容

the text -1234567890- appears in the text.

2.ABAPA 开发实例

2.1 ABAP中数据和对象的动态创建

定义一个本地类:包含(类定义的声明DEFINITION和实现部分IMPLMENTATION)

"定义本地类
CLASS zlcl_class DEFINITION.
  PUBLIC SECTION.
    DATA: mv_value TYPE string.
    METHODS:
      set_value IMPORTING iv_value TYPE string,
      display_value.
ENDCLASS.

"类有实现部分
CLASS zlcl_class IMPLEMENTATION .
  METHOD display_value.
    WRITE:/ 'Class Instance Attribute:',mv_value.
  ENDMETHOD.
  METHOD set_value.
    mv_value =  iv_value.
  ENDMETHOD.
ENDCLASS.

"程序部分

START-OF-SELECTION.
  TYPES: ty_i TYPE i.
  DATA: gv_dref TYPE REF TO ty_i.
  DATA: go_oref TYPE REF TO zlcl_class.
  "异常的处理
  DATA:exc_ref  TYPE REF TO cx_root,
       exc_text TYPE string.

  "根据基本类型名动态创建数据【此法不推荐使用】
  CREATE DATA gv_dref  TYPE ('ty_i').
  gv_dref->* = 1.
  WRITE:/ gv_dref->*.

  "异常
  TRY.
      "根据类别动态创建实例对象,类名必须大写
*      CREATE DATA go_oref TYPE ('ZLCL_CLASS')."注意
      CREATE OBJECT go_oref TYPE ('ZLCL_CLASS').
      go_oref->set_value(' jj ').
      go_oref->display_value( ).

    CATCH cx_sy_create_object_error INTO exc_ref.
      exc_text = exc_ref->get_text( ).
      MESSAGE exc_text TYPE 'I'.
  ENDTRY.
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值