47 lines
953 B
Plaintext
47 lines
953 B
Plaintext
Because ``++CX_ROOT++`` is the base exception type, catching it directly probably casts a wider net than you intended. Catching ``++CX_ROOT++`` could mask far more serious system errors that your ``++CATCH++`` logic was intended to deal with.
|
|
|
|
|
|
Some smaller, more specific exception type should be caught instead.
|
|
|
|
|
|
== Noncompliant Code Example
|
|
|
|
----
|
|
try.
|
|
if ABS( NUMBER ) > 100.
|
|
write / 'Number is large'.
|
|
endif.
|
|
catch CX_ROOT into OREF.
|
|
write / OREF->GET_TEXT( ).
|
|
endtry.
|
|
----
|
|
|
|
|
|
== Compliant Solution
|
|
|
|
----
|
|
try.
|
|
if ABS( NUMBER ) > 100.
|
|
write / 'Number is large'.
|
|
endif.
|
|
catch CX_SY_ARITHMETIC_ERROR into OREF.
|
|
write / OREF->GET_TEXT( ).
|
|
endtry.
|
|
----
|
|
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::message.adoc[]
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
include::comments-and-links.adoc[]
|
|
endif::env-github,rspecator-view[]
|