ABAP Keyword Documentation → ABAP - Reference → Program Flow Logic → Conditional Expressions
COND, SWITCH - result
Other versions:
7.31 | 7.40 | 7.54
Syntax
... operand
| { THROW [RESUMABLE] cx_class( [p1 = a1 p2 = a2 ...] ) } ...
Alternatives
2. ... THROW [RESUMABLE] cx_class( [p1 = a1 p2 = a2 ...] )
Effect
These strings specified after THEN and ELSE in the
conditional expressions
COND and
SWITCH determine the result of the expression if the appropriate branch is selected.
Alternative 1
... operand
Effect
If an operand operand is specified, its value is converted to the data type
type, if necessary, and returned as the result of the conditional expression. operand is a
general expression position with the following restrictions:
- If
operandis specified as a string expression,typemust be character-like.
- If
operandis specified as a bit expression,typemust be byte-like.
Note
When an operand is selected, the condition operators COND and SWITCH
create a temporary data object (from a technical perspective) whose data type is determined by the specified
type and whose content is determined by the selected operand. This data object is used as the operand
of a statement and then deleted. It is deleted when the current statements is closed or after the analysis of a relational expression once the logical value has been determined.
Alternative 2
... THROW [RESUMABLE] cx_class( [p1 = a1 p2 = a2 ...] )
Effect
If THROW is specified, an exception of the following
exception class
cx_class is raised in accordance with the rules of the statement
RAISE EXCEPTION. Here, the input parameters p1,
p2, ... of the instance constructor can be filled with the actual parameters a1, a2.
Notes
- If the exception class is specified after
THROW, the parentheses must always be specified, even if no actual parameters are passed.EXPORTINGcannot be specified, nor does it need to be.
- Like the statement
RAISE EXCEPTION,THROWcannot be used in a method or function module in whose interface non-class-basedexceptions are declared. Also, the statement does not permit simultaneous use of the statementCATCHSYSTEM-EXCEPTIONSfor the obsolete handling of catchable runtime errors, and the statementsRAISEorMESSAGE RAISINGto raise non-class-based exceptions in the current processing block.