본문 바로가기
SAP/Complete ABAP

9. Exception Handling

by Radler 2023. 2. 22.

9.1 Exceptions Overview
적절한 예외에 따른 메시지를 뿌려주는 것.

9.2 Procedural Exeption Handling
펑션모듈과 메서드만이 자체 예외처리 로직을 가질 수 있다. 

9.3 Class-Based Exception Handling
DATA r_ex TYPE REF TO cx_sy_zerodivide.
TRY.
"이거 해봐
CATCH cx_sy_zerodivide INTO r_ex.
"에러나면 아래 메시지 뿌려
WRITE :/ 'Error Short Text :', r_ex->get_text( ).
CLEANUP.
"그리고 이거 실행해봐. (오픈된 파일들을 닫거나 롤백하는 로직이 주로 여기에 들어감)
ENDTRY.

예외 클래스는 'CX_SY_'로 시작한다.
커스텀 예외 클래스는 아래 3가지 중 하나에 속한다. 
CX_STATIC_CHECK : 컴파일러가 구문 체크 단계에서 경고 메시지를 뿌려준다. 
CS_DYNAMIC_CHECK : 컴파일러가 런타임 시, 에러를 뿌려준다. 
CX_NO_CHECK : 암묵적으로 선언되어 CALLER에게 전달해준다. 

9.4 Messages in Exception Classes
-1. OTR(Online Text Repository) : 일반 클래스 내에서 예외처리를 하는 방법
-2. Using MSG from a MSG Class : 일반 클래스가 아닌 메시지 클래스(따로 체크박스에 체크)를 아예 따로 만드는 방법

2번 방법에서 IF_T100_DYN_MSG를 인터페이스를 받을 경우, 메시지 타입과 WITH Addition을 쓰면 변수를 따로 받아올 수 있지만, 
IF_T100_MESSAGE를 인터페이스로 받으면 불가능하다. 

'SAP > Complete ABAP' 카테고리의 다른 글

8.6 EXTENSIBLE MARKUP LANGUAGE(XML)  (0) 2023.02.22
8.5 Polymorphism  (0) 2023.02.22
8.4 Inheritance  (1) 2023.02.22
8.3 Encapsulation  (0) 2023.02.05
8.2 Principles of OOP  (0) 2023.02.05