
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
55 lines
1.0 KiB
Plaintext
55 lines
1.0 KiB
Plaintext
== Why is this an issue?
|
|
|
|
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
|
|
|
|
[source,abap]
|
|
----
|
|
try.
|
|
if ABS( NUMBER ) > 100.
|
|
write / 'Number is large'.
|
|
endif.
|
|
catch CX_ROOT into OREF.
|
|
write / OREF->GET_TEXT( ).
|
|
endtry.
|
|
----
|
|
|
|
|
|
=== Compliant solution
|
|
|
|
[source,abap]
|
|
----
|
|
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)
|
|
|
|
=== Message
|
|
|
|
Narrow this \"``++CATCH++``" to a more specific exception exception type
|
|
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
=== is related to: S1181
|
|
|
|
endif::env-github,rspecator-view[]
|