<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Catch CX_ROOT vs Specific Exception in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737165#M1772810</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;It is to know how Call Pattern suggests list of exceptions.&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;I'm sorry; but i don't get that either.&lt;SPAN __jive_emoticon_name="confused" __jive_macro_name="emoticon" class="jive_macro jive_emote" src="https://community.sap.com/1904/images/emoticons/confused.gif"&gt;&lt;/SPAN&gt; So you were trying to tell the OP how the "Insert Pattern" suggests the list of exceptions. And (if i understand your response correctly) it does that by -&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;check&lt;SPAN style="color: #ff6600;"&gt;ing&lt;/SPAN&gt; &lt;SPAN style="text-decoration: line-through;"&gt;manually&lt;/SPAN&gt; RAISE statement &lt;SPAN style="text-decoration: line-through;"&gt;can be searched&lt;/SPAN&gt; in the method &lt;SPAN style="text-decoration: line-through;"&gt;or class&lt;/SPAN&gt;.&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 20 Oct 2013 12:03:03 GMT</pubDate>
    <dc:creator>SuhaSaha</dc:creator>
    <dc:date>2013-10-20T12:03:03Z</dc:date>
    <item>
      <title>Catch CX_ROOT vs Specific Exception</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737158#M1772803</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm learning SAP ABAP Objects basics , Please no links. I would appreciate if some one could explain..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a class ZCL_TEST with a method&amp;nbsp; GET_DATA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;with &lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;IM_MATNR&lt;/TD&gt;&lt;TD&gt;Importing&lt;/TD&gt;&lt;TD&gt;Type&lt;/TD&gt;&lt;TD&gt;MATNR&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;EX_MARA&amp;nbsp;&amp;nbsp; Exporting Type MARA&lt;/P&gt;&lt;P&gt;and en exception&amp;nbsp; ZCX_MATERIAL&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;method get_data.&lt;/P&gt;&lt;P&gt;SELECT SINGLE * INTO EX_MARA FROM MARA WHERE MATNR = IM_MATNR.&lt;/P&gt;&lt;P&gt;IF SY-SUBRC NE 0.&lt;/P&gt;&lt;P&gt;RAISE ZCX_MATERIAL.&lt;/P&gt;&lt;P&gt;endmethod.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Again ZCX_MATERIAL is an Exception Class with Super class CX_STATIC_CHECK&lt;/P&gt;&lt;P&gt;Now my Exception Class Text Says&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;BR /&gt;&lt;/TD&gt;&lt;TD&gt;ZCX_MATERIAL&lt;/TD&gt;&lt;TD&gt;&lt;BR /&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now with in Method DEFAULT of ZCL_MAIN Class i have something like this&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD DEFAULT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : LC_TEST TYPE REF TO ZCL_TEST.&lt;/P&gt;&lt;P&gt;DATA : WA_MARA TYPE MARA.&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S52"&gt;DATA&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;: &lt;/SPAN&gt;&amp;nbsp; gr_err &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;REF &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;TO ZCX_MATERIAL.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CREATE OBJECT LC_TEST.&lt;/P&gt;&lt;P&gt;TRY.&lt;/P&gt;&lt;P&gt;LC_TEST-&amp;gt;GET_DATA ( IMPORTING IM_MATNR = 'ABC'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXPORTING IM_MARA&amp;nbsp; = WA_MARA ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;EM style="text-decoration: underline;"&gt;CATCH ZCX_MATERIAL INTO GR_ERR.&lt;/EM&gt;&amp;nbsp;&amp;nbsp; "Orginal One&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt; gs_msg &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;gr_err&lt;SPAN class="L0S70"&gt;-&amp;gt;&lt;/SPAN&gt;get_text&lt;SPAN class="L0S55"&gt;( &lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;)&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S55"&gt;WRITE : GS_MSG.&amp;nbsp; &lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Output is&amp;nbsp; &lt;STRONG&gt;" An Exception Occured "&amp;nbsp; ( &lt;/STRONG&gt;This is the Value of GS_MSG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Instead i change it to &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;METHOD DEFAULT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : LC_TEST TYPE REF TO ZCL_TEST.&lt;/P&gt;&lt;P&gt;DATA : WA_MARA TYPE MARA.&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S52"&gt;DATA&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; gr_err &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;REF &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;TO &lt;/SPAN&gt;cx_root.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CREATE OBJECT LC_TEST.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TRY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LC_TEST-&amp;gt;GET_DATA ( IMPORTING IM_MATNR = 'ABC'&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; EXPORTING IM_MARA&amp;nbsp; = WA_MARA ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;EM style="text-decoration: underline;"&gt;CATCH CX_ROOT INTO GR_ERR.&lt;/EM&gt;&amp;nbsp; "Changed One&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;gs_msg &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;gr_err&lt;SPAN class="L0S70"&gt;-&amp;gt;&lt;/SPAN&gt;get_text&lt;SPAN class="L0S55"&gt;( &lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;)&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S55"&gt;WRITE : GS_MSG.&amp;nbsp; &lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDMETHOD.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Output is&amp;nbsp; &lt;STRONG&gt;" An Exception Occured "&amp;nbsp; ( &lt;/STRONG&gt;This is the Value of GS_MSG. )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My questions are&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1)Either way i'm getting Same Message &lt;STRONG&gt;" An Exception Occured "&lt;/STRONG&gt; , so whats the point in Catching Specific CATCH ZCX_MATERIAL INTO GR_ERR.&lt;/P&gt;&lt;P&gt;excepton class ...we can always use CATCH CX_ROOT INTO GR_ERR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2)Lets Say i want a more specific message then i have to attach a message text &lt;/P&gt;&lt;P&gt;Now my Exception Class Text Says&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;BR /&gt;&lt;/TD&gt;&lt;TD&gt;ZCX_MATERIAL&lt;/TD&gt;&lt;TD&gt;Enter a valid value&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;If i run the pgm both ways my Output is "Enter a Valid value "&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So when i have to use&amp;nbsp;&amp;nbsp; CATCH ZCX_MATERIAL INTO GR_ERR.&amp;nbsp; or when i have to use CATCH CX_ROOT INTO GR_ERR&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 Oct 2013 02:33:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737158#M1772803</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-10-19T02:33:07Z</dc:date>
    </item>
    <item>
      <title>Re: Catch CX_ROOT vs Specific Exception</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737159#M1772804</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For a known exception, you can take specific action. &lt;/P&gt;&lt;P&gt;For remaining exceptions, cx_root can be used the catch exception, and show associated text.&lt;/P&gt;&lt;P&gt;Take a look at this snippet.&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&lt;SPAN style="color: #0000ff;"&gt;DATA &lt;/SPAN&gt;lv &lt;SPAN style="color: #0000ff;"&gt;TYPE &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;i&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;DATA &lt;/SPAN&gt;lv_message &lt;SPAN style="color: #0000ff;"&gt;TYPE &lt;/SPAN&gt;string&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;DATA &lt;/SPAN&gt;lr_exc &lt;SPAN style="color: #0000ff;"&gt;TYPE &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;REF &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;TO &lt;/SPAN&gt;cx_root&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;TRY &lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lv &lt;SPAN style="color: #800080;"&gt;=&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN style="color: #3399ff;"&gt;100 &lt;/SPAN&gt;/ &lt;SPAN style="color: #3399ff;"&gt;0&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;CATCH &lt;/SPAN&gt;cx_root &lt;SPAN style="color: #0000ff;"&gt;INTO &lt;/SPAN&gt;lr_exc&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lv_message &lt;SPAN style="color: #800080;"&gt;= &lt;/SPAN&gt;lr_exc&lt;SPAN style="color: #808080;"&gt;-&amp;gt;&lt;/SPAN&gt;get_text&lt;SPAN style="color: #800080;"&gt;( &lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;)&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;WRITE&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;:&lt;/SPAN&gt;/ lv_message&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;ENDTRY&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Here, output will be 'Division by zero'. It could have been 'Overflow during operation' if you multiply 99999 by 99999.&lt;/P&gt;&lt;P&gt;By catching specific exception, you can give tailored message like 'Number 100 can't be divided by 0'.&lt;/P&gt;&lt;P&gt;&lt;IMG class="migrated-image" src="https://community.sap.com/legacyfs/online/storage/attachments/storage/7/jiveimages/300979" /&gt;&lt;/P&gt;&lt;P&gt;According to links, the associated text can be hardcoded or linked to SE91 message class.&lt;/P&gt;&lt;P&gt;You are getting general message 'An Exception Occurred' because the exception object is not having an associated text.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 Oct 2013 05:39:23 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737159#M1772804</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-10-19T05:39:23Z</dc:date>
    </item>
    <item>
      <title>Re: Catch CX_ROOT vs Specific Exception</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737160#M1772805</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Manish Kumar.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now i have a better understanding&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So as per my understanding&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TRY&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;----&lt;/P&gt;&lt;P&gt;----&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CATCH&amp;nbsp; SPECIFIC EXCEPTIONS LIKE CX_SY_ZERODIVIDE OR CX_SY_ARTHIMETIC ERROR&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CATCH CX_ROOT&amp;nbsp;&amp;nbsp; " &lt;STRONG&gt;At the end to be on safer side if i missed any specific exceptions that can occur because of above statements&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDTRY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If i'm right i have one last question how to identify the SPECIFIC Exceptions that can occur &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ex :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try.&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S52"&gt;CALL &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;cl_salv_table&lt;SPAN class="L0S70"&gt;=&amp;gt;&lt;/SPAN&gt;factory&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;EXPORTING&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r_container&amp;nbsp; &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;gr_container&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;IMPORTING&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r_salv_table &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;gr_alv&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CHANGING&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; t_table&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;i_table&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CATCH &lt;/SPAN&gt;cx_salv_msg&lt;SPAN class="L0S55"&gt;.&amp;nbsp; " &lt;STRONG&gt;how do i identify this particular exception&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S55"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; catch cx_root. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S55"&gt;endtry.&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;I see that its in the signature of the Method Factory is thats how you identify what exceptions can occur&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;But i see for some methods there are no exceptions does it mean no exceptions can occur ?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 Oct 2013 18:06:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737160#M1772805</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-10-19T18:06:09Z</dc:date>
    </item>
    <item>
      <title>Re: Catch CX_ROOT vs Specific Exception</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737161#M1772806</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Code is generated automatically for the exceptions that can be raised by method. (when Call Pattern is used).&lt;/P&gt;&lt;P&gt;To check manually, RAISE statement can be searched in the method or class.&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;if &lt;/SPAN&gt;r_container &lt;SPAN style="color: #0000ff;"&gt;is &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;bound &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;and &lt;/SPAN&gt;list_display &lt;SPAN style="color: #0000ff;"&gt;eq &lt;/SPAN&gt;abap_true&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;raise &lt;/SPAN&gt;exception &lt;SPAN style="color: #0000ff;"&gt;type &lt;/SPAN&gt;cx_salv_msg&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;exporting &lt;/SPAN&gt;msgid &lt;SPAN style="color: #800080;"&gt;= &lt;/SPAN&gt;&lt;SPAN style="color: #4da619;"&gt;'SALV_EXCEPTION'&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msgno &lt;SPAN style="color: #800080;"&gt;= &lt;/SPAN&gt;&lt;SPAN style="color: #3399ff;"&gt;015&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;endif&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;if &lt;/SPAN&gt;is_offline&lt;SPAN style="color: #800080;"&gt;( &lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;) &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;eq &lt;/SPAN&gt;if_salv_c_bool_sap&lt;SPAN style="color: #808080;"&gt;=&amp;gt;&lt;/SPAN&gt;true &lt;SPAN style="color: #0000ff;"&gt;and&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r_container &lt;SPAN style="color: #0000ff;"&gt;is &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;bound&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;raise &lt;/SPAN&gt;exception &lt;SPAN style="color: #0000ff;"&gt;type &lt;/SPAN&gt;cx_salv_msg&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;exporting &lt;/SPAN&gt;msgid &lt;SPAN style="color: #800080;"&gt;= &lt;/SPAN&gt;&lt;SPAN style="color: #4da619;"&gt;'SALV_EXCEPTION'&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; msgno &lt;SPAN style="color: #800080;"&gt;= &lt;/SPAN&gt;&lt;SPAN style="color: #3399ff;"&gt;025&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;endif&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The factory method has 2 RAISE statement, both for exception class cx_salv_msg.&lt;/P&gt;&lt;P&gt;Even if a method is not raising exception, exception can still occur in methods or FMs called by method.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 Oct 2013 18:18:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737161#M1772806</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-10-19T18:18:19Z</dc:date>
    </item>
    <item>
      <title>Re: Catch CX_ROOT vs Specific Exception</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737162#M1772807</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Satyam,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think you should close your previous thread - &lt;A __default_attr="3440542" __jive_macro_name="thread" class="jive_macro jive_macro_thread" href="https://community.sap.com/" jive_internal="true"&gt;&lt;/A&gt;. I can see that the responders have provided quite a few valuable responses which tell you why you should not use CX_ROOT to catch the exceptions.&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;1)Either way i'm getting Same Message &lt;STRONG&gt;" An Exception Occured "&lt;/STRONG&gt; , so whats the point in Catching Specific CATCH ZCX_MATERIAL INTO GR_ERR.&lt;/P&gt;&lt;P&gt;excepton class ...we can always use CATCH CX_ROOT INTO GR_ERR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2)Lets Say i want a more specific message then i have to attach a message text &lt;/P&gt;&lt;P&gt;Now my Exception Class Text Says&lt;/P&gt;&lt;/CODE&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;BR /&gt;&lt;/TD&gt;&lt;TD&gt;ZCX_MATERIAL&lt;/TD&gt;&lt;TD&gt;Enter a valid value&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;If i run the pgm both ways my Output is "Enter a Valid value "&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So when i have to use&amp;nbsp;&amp;nbsp; CATCH ZCX_MATERIAL INTO GR_ERR.&amp;nbsp; or when i have to use CATCH CX_ROOT INTO GR_ERR&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let's take a simple example, you are trying to post a question on SCN. There are 3 types of exceptions which may occur:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="1" class="jiveBorder" height="89" jive-data-cell="{&amp;amp;quot;color&amp;amp;quot;:&amp;amp;quot;#000000&amp;amp;quot;,&amp;amp;quot;textAlign&amp;amp;quot;:&amp;amp;quot;left&amp;amp;quot;,&amp;amp;quot;padding&amp;amp;quot;:&amp;amp;quot;2&amp;amp;quot;,&amp;amp;quot;backgroundColor&amp;amp;quot;:&amp;amp;quot;transparent&amp;amp;quot;,&amp;amp;quot;fontFamily&amp;amp;quot;:&amp;amp;quot;arial,helvetica,sans-serif&amp;amp;quot;}" jive-data-header="{&amp;amp;quot;color&amp;amp;quot;:&amp;amp;quot;#FFFFFF&amp;amp;quot;,&amp;amp;quot;backgroundColor&amp;amp;quot;:&amp;amp;quot;#6690BC&amp;amp;quot;,&amp;amp;quot;textAlign&amp;amp;quot;:&amp;amp;quot;center&amp;amp;quot;,&amp;amp;quot;padding&amp;amp;quot;:&amp;amp;quot;2&amp;amp;quot;,&amp;amp;quot;fontFamily&amp;amp;quot;:&amp;amp;quot;arial,helvetica,sans-serif&amp;amp;quot;}" style="border: 1px solid rgb(0, 0, 0); width: 435px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;Exception&lt;/STRONG&gt;&lt;/TH&gt;&lt;TH style="text-align: center; background-color: #6690bc; color: #ffffff; padding: 2px;" valign="middle"&gt;&lt;STRONG&gt;Handling&lt;/STRONG&gt;&lt;BR /&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="color: #000000; text-align: left; padding: 2px; background-color: transparent;"&gt;No user id&lt;/TD&gt;&lt;TD style="color: #000000; text-align: left; padding: 2px; background-color: transparent;"&gt;Create a new user id&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="color: #000000; text-align: left; padding: 2px; background-color: transparent;"&gt;Forgot password&lt;/TD&gt;&lt;TD style="color: #000000; text-align: left; padding: 2px; background-color: transparent;"&gt;Request for a new password&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD style="color: #000000; text-align: left; padding: 2px; background-color: transparent;"&gt;SCN site is down for maintenance&lt;/TD&gt;&lt;TD style="color: #000000; text-align: left; padding: 2px; background-color: transparent;"&gt;Take a break &amp;amp; come back later&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;&lt;SPAN class="L0S52"&gt;TRY &lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; post_a_question_on_scn&lt;SPAN class="L0S55"&gt;( &lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;)&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CATCH &lt;/SPAN&gt;no_user_id&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; create_user_id&lt;SPAN class="L0S55"&gt;( &lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;)&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CATCH &lt;/SPAN&gt;forgot_password&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; request_new_password&lt;SPAN class="L0S55"&gt;( &lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;)&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CATCH &lt;/SPAN&gt;site_maintenance&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sip_coffee_and_come_back_later&lt;SPAN class="L0S55"&gt;( &lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;)&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S52"&gt;ENDTRY&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you use the the generic exception &lt;EM&gt;CX_ROOT&lt;/EM&gt;, can you handle the specific exceptions? So the answer to your question is - "&lt;EM&gt;depends on how you want to handle the exception&lt;/EM&gt;". &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BR,&lt;/P&gt;&lt;P&gt;Suhas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 Oct 2013 20:14:37 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737162#M1772807</guid>
      <dc:creator>SuhaSaha</dc:creator>
      <dc:date>2013-10-19T20:14:37Z</dc:date>
    </item>
    <item>
      <title>Re: Catch CX_ROOT vs Specific Exception</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737163#M1772808</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;&lt;STRONG&gt;I see that its in the signature of the Method Factory is that's how you identify what exceptions can occur&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;But i see for some methods there are no exceptions does it mean no exceptions can occur ?&lt;/STRONG&gt;&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;All exception classes which are inherited from CX_STATIC_CHECK should be either handled in the procedure(FORM, FUNCTION, METHOD etc) or propagated through the interface (read: signature). (Ref. - &lt;A href="http://help.sap.com/abapdocu_740/en/abenexception_categories.htm" title="http://help.sap.com/abapdocu_740/en/abenexception_categories.htm"&gt;http://help.sap.com/abapdocu_740/en/abenexception_categories.htm&lt;/A&gt;)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In order to see which exception the procedure propagates i always refer to the signature &amp;amp; IMO that's the most trusted place to look for.&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;To check manually, RAISE statement can be searched in the method or class&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;A __default_attr="133285" __jive_macro_name="user" class="jive_macro jive_macro_user" href="https://community.sap.com/"&gt;&lt;/A&gt; - Checking for the RAISE statement manually might help, but i won't suggest it to anyone. E.g., i have a method &lt;EM&gt;div_raise_excp( )&lt;/EM&gt; defined as:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; div_raise_excp&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S52"&gt;IMPORTING&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; numerator &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;i &lt;/SPAN&gt;denominator &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;i&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURNING &lt;SPAN class="L0S52"&gt;value&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;(&lt;/SPAN&gt;quotient&lt;SPAN class="L0S55"&gt;) &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;i&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;RAISING &lt;/SPAN&gt;cx_sy_zerodivide&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and implemented as &lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;&lt;SPAN class="L0S52"&gt;METHOD div_raise_excp&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; quotient &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;numerator / denominator&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S52"&gt;&lt;SPAN class="L0S52"&gt;ENDMETHOD&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S52"&gt;&lt;SPAN class="L0S55"&gt;There is no RAISE statement in the method/class, so should i leave the method call as &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; lcl_main&lt;SPAN class="L0S70"&gt;=&amp;gt;div_raise_excp&lt;SPAN class="L0S55"&gt;( &lt;/SPAN&gt;numerator &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;&lt;SPAN class="L0S32"&gt;1 &lt;/SPAN&gt;denominator &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;&lt;SPAN class="L0S32"&gt;0 &lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;)&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;. &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Or should i put it in a TRY-CATCH block&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;&lt;SPAN class="L0S52"&gt;TRY &lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lcl_main&lt;SPAN class="L0S70"&gt;=&amp;gt;&lt;/SPAN&gt;div_raise_excp&lt;SPAN class="L0S55"&gt;( &lt;/SPAN&gt;numerator &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;&lt;SPAN class="L0S32"&gt;1 &lt;/SPAN&gt;denominator &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;&lt;SPAN class="L0S32"&gt;0 &lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;)&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CATCH &lt;/SPAN&gt;cx_sy_zerodivide ##no_handler&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S52"&gt;&lt;SPAN class="L0S52"&gt;ENDTRY&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BR,&lt;/P&gt;&lt;P&gt;Suhas&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 19 Oct 2013 20:47:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737163#M1772808</guid>
      <dc:creator>SuhaSaha</dc:creator>
      <dc:date>2013-10-19T20:47:02Z</dc:date>
    </item>
    <item>
      <title>Re: Catch CX_ROOT vs Specific Exception</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737164#M1772809</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;Checking for the RAISE statement manually might help, but i won't suggest it to anyone.&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;I am not suggesting that either. It is to know how Call Pattern suggests list of exceptions.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 20 Oct 2013 10:08:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737164#M1772809</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-10-20T10:08:55Z</dc:date>
    </item>
    <item>
      <title>Re: Catch CX_ROOT vs Specific Exception</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737165#M1772810</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;It is to know how Call Pattern suggests list of exceptions.&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;I'm sorry; but i don't get that either.&lt;SPAN __jive_emoticon_name="confused" __jive_macro_name="emoticon" class="jive_macro jive_emote" src="https://community.sap.com/1904/images/emoticons/confused.gif"&gt;&lt;/SPAN&gt; So you were trying to tell the OP how the "Insert Pattern" suggests the list of exceptions. And (if i understand your response correctly) it does that by -&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;check&lt;SPAN style="color: #ff6600;"&gt;ing&lt;/SPAN&gt; &lt;SPAN style="text-decoration: line-through;"&gt;manually&lt;/SPAN&gt; RAISE statement &lt;SPAN style="text-decoration: line-through;"&gt;can be searched&lt;/SPAN&gt; in the method &lt;SPAN style="text-decoration: line-through;"&gt;or class&lt;/SPAN&gt;.&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 20 Oct 2013 12:03:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737165#M1772810</guid>
      <dc:creator>SuhaSaha</dc:creator>
      <dc:date>2013-10-20T12:03:03Z</dc:date>
    </item>
    <item>
      <title>Re: Catch CX_ROOT vs Specific Exception</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737166#M1772811</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Agreed&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The correct pattern is to define the exception object that you catch into with reference to &lt;STRONG&gt;cx_root&lt;/STRONG&gt;, but catch &lt;STRONG&gt;specific &lt;/STRONG&gt;exceptions. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Never catch &lt;STRONG&gt;cx_root.&lt;/STRONG&gt; ...&lt;SPAN style="font-size: 11.111111640930176px;"&gt;of course there may be some exceptions to this, but as a general rule it stands.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 20 Oct 2013 19:42:08 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737166#M1772811</guid>
      <dc:creator>matt</dc:creator>
      <dc:date>2013-10-20T19:42:08Z</dc:date>
    </item>
    <item>
      <title>Re: Catch CX_ROOT vs Specific Exception</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737167#M1772812</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It is an observation based on code generated by Call Pattern.&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&lt;SPAN style="font-style: italic; color: #808080;"&gt;*TRY.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="color: #0000ff;"&gt;CALL &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;METHOD &lt;/SPAN&gt;cl_salv_table&lt;SPAN style="color: #808080;"&gt;=&amp;gt;&lt;/SPAN&gt;factory&lt;BR /&gt;&lt;SPAN style="font-style: italic; color: #808080;"&gt;*&amp;nbsp; EXPORTING&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-style: italic; color: #808080;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp; list_display&amp;nbsp;&amp;nbsp; = IF_SALV_C_BOOL_SAP=&amp;gt;FALSE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-style: italic; color: #808080;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp; r_container&amp;nbsp;&amp;nbsp;&amp;nbsp; =&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-style: italic; color: #808080;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp; container_name =&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-style: italic; color: #808080;"&gt;*&amp;nbsp; IMPORTING&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-style: italic; color: #808080;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp; r_salv_table&amp;nbsp;&amp;nbsp; =&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;CHANGING&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; t_table&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #800080;"&gt;=&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-style: italic; color: #808080;"&gt;* CATCH cx_salv_msg .&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-style: italic; color: #808080;"&gt;*ENDTRY.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;The method implementation has statement "raise exception type cx_salv_msg", and Call Pattern has "Catch cx_salv_msg".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;On the other hand, Call Pattern for cl_gui_alv_grid-&amp;gt;refresh_table_display is:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;&lt;SPAN style="font-family: courier new,courier;"&gt;&lt;SPAN style="color: #0000ff;"&gt;CALL &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;METHOD &lt;/SPAN&gt;lr_grid&lt;SPAN style="color: #808080;"&gt;-&amp;gt;&lt;/SPAN&gt;refresh_table_display&lt;BR /&gt;&lt;SPAN style="font-style: italic; color: #808080;"&gt;*&amp;nbsp; EXPORTING&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-style: italic; color: #808080;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp; is_stable&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-style: italic; color: #808080;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp; i_soft_refresh =&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-style: italic; color: #808080;"&gt;*&amp;nbsp; EXCEPTIONS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-style: italic; color: #808080;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp; finished&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN style="font-style: italic; color: #808080;"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp; others&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 2&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;The method implementation has statement "raise finished".&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Oct 2013 07:58:16 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737167#M1772812</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-10-21T07:58:16Z</dc:date>
    </item>
    <item>
      <title>Re: Catch CX_ROOT vs Specific Exception</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737168#M1772813</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I would rather say that the pattern only generates the exceptions defined in the method signature &lt;SPAN __jive_emoticon_name="info" __jive_macro_name="emoticon" class="jive_macro jive_emote" src="https://community.sap.com/1904/images/emoticons/info.gif"&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;CL_SALV_TABLE=&amp;gt;FACTORY( ); exception class CX_SALV_MSG. Hence the TRY-CATCH block.&lt;/LI&gt;&lt;LI&gt;CL_GUI_ALV_GRID-&amp;gt;REFRESH_TABLE_DISPLAY( ); classical exception FINISHED. Hence the classical exception handling using SY-SUBRC.&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;SPAN class="L0S52"&gt;class ZCL_CALCULATOR &lt;SPAN class="L0S52"&gt;definition&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;public&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; final&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;create &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;public &lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt; &lt;SPAN class="L0S52"&gt;public &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;section&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;constants &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;ADD &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;type &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;I &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;value &lt;/SPAN&gt;&lt;SPAN class="L0S32"&gt;1&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;. &lt;/SPAN&gt;&lt;SPAN class="L0S31"&gt;"#EC NOTEXT&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;constants &lt;/SPAN&gt;SUB &lt;SPAN class="L0S52"&gt;type &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;I &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;value &lt;/SPAN&gt;&lt;SPAN class="L0S32"&gt;2&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;. &lt;/SPAN&gt;&lt;SPAN class="L0S31"&gt;"#EC NOTEXT&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;constants &lt;/SPAN&gt;MULT &lt;SPAN class="L0S52"&gt;type &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;I &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;value &lt;/SPAN&gt;&lt;SPAN class="L0S32"&gt;3&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;. &lt;/SPAN&gt;&lt;SPAN class="L0S31"&gt;"#EC NOTEXT&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;constants &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;DIV &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;type &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;I &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;value &lt;/SPAN&gt;&lt;SPAN class="L0S32"&gt;4&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;. &lt;/SPAN&gt;&lt;SPAN class="L0S31"&gt;"#EC NOTEXT&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;class-methods &lt;/SPAN&gt;CALCULATOR&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;importing&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !OPERATION &lt;SPAN class="L0S52"&gt;type &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;I&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !IV1 &lt;SPAN class="L0S52"&gt;type &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;I&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !IV2 &lt;SPAN class="L0S52"&gt;type &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;I&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; returning&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;value&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;(&lt;/SPAN&gt;RES&lt;SPAN class="L0S55"&gt;) &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;type &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;I&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;raising&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CX_SY_ARITHMETIC_OVERFLOW&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CX_SY_ZERODIVIDE &lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S52"&gt;protected &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;section&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S52"&gt;private &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;section&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;class-data &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;X &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;type &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;I &lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;class-data &lt;/SPAN&gt;Y &lt;SPAN class="L0S52"&gt;type &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;I &lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S52"&gt;ENDCLASS&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;SPAN class="L0S52"&gt;CLASS &lt;/SPAN&gt;ZCL_CALCULATOR &lt;SPAN class="L0S52"&gt;IMPLEMENTATION&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; &lt;SPAN class="L0S31"&gt;* &amp;lt;SIGNATURE&amp;gt;---------------------------------------------------------------------------------------+&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;* | Static Public Method ZCL_CALCULATOR=&amp;gt;CALCULATOR&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;* +-------------------------------------------------------------------------------------------------+&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;* | [---&amp;gt;] OPERATION&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TYPE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;* | [---&amp;gt;] IV1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TYPE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;* | [---&amp;gt;] IV2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TYPE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;* | [&amp;lt;-()] RES&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; TYPE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;* | [!CX!] CX_SY_ARITHMETIC_OVERFLOW&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;* | [!CX!] CX_SY_ZERODIVIDE&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S31"&gt;* +--------------------------------------------------------------------------------------&amp;lt;/SIGNATURE&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;calculator&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CASE &lt;/SPAN&gt;operation&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;WHEN &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;add&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; res &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;iv1 + iv2&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;WHEN &lt;/SPAN&gt;sub&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; res &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;abs&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;( &lt;/SPAN&gt;iv1 &lt;SPAN class="L0S70"&gt;- &lt;/SPAN&gt;iv2 &lt;SPAN class="L0S55"&gt;)&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;WHEN &lt;/SPAN&gt;mult&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; res &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;iv1 * iv2&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;WHEN &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;div&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; res &lt;SPAN class="L0S55"&gt;= &lt;/SPAN&gt;iv1 / iv2&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;ENDCASE&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;BR /&gt; &lt;SPAN class="L0S52"&gt;ENDMETHOD&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;BR /&gt; &lt;SPAN class="L0S52"&gt;ENDCLASS&lt;/SPAN&gt;&lt;SPAN class="L0S55"&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Create a global class(using the code above) &amp;amp; call the method&lt;SPAN class="L0S52"&gt;&lt;SPAN class="L0S31"&gt; ZCL_CALCULATOR=&amp;gt;CALCULATOR( ) in your program. You'll see that the exceptions are raised in a TRY-CATCH block.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S52"&gt;&lt;SPAN class="L0S31"&gt;BR,&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S52"&gt;&lt;SPAN class="L0S31"&gt;Suhas&lt;BR /&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Oct 2013 10:31:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737168#M1772813</guid>
      <dc:creator>SuhaSaha</dc:creator>
      <dc:date>2013-10-21T10:31:43Z</dc:date>
    </item>
    <item>
      <title>Re: Catch CX_ROOT vs Specific Exception</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737169#M1772814</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It is good to know that method signature is the correct term to be used here.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 21 Oct 2013 10:51:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737169#M1772814</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2013-10-21T10:51:42Z</dc:date>
    </item>
    <item>
      <title>Re: Catch CX_ROOT vs Specific Exception</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737170#M1772815</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As Matthew explained, catching cx_root is generally a no-go. Please keep in mind, that implicitly raised exceptions like CX_SY_REF_IS_INITIAL (when accessing an unbound object) are also catched and you won't receive a dump explaining what went wrong..&lt;/P&gt;&lt;P&gt;So unless you don't know exactly what you are doing, catch specific exceptions. If you catch CX_ROOT, you need to write additional logic, which helps you in the following aspects:&lt;/P&gt;&lt;P&gt;-re-raising certain exceptions, that should lead to a program exit (dump)&lt;/P&gt;&lt;P&gt;-output of the exact stack trace&lt;/P&gt;&lt;P&gt;-switching off stack trace output for end users&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 15 Dec 2013 12:47:30 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737170#M1772815</guid>
      <dc:creator>former_member182680</dc:creator>
      <dc:date>2013-12-15T12:47:30Z</dc:date>
    </item>
    <item>
      <title>Re: Catch CX_ROOT vs Specific Exception</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737171#M1772816</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Satyam,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For this you can use the Multiple catch block for the simple try Block. Class CX_root is the top most class of all the exception class.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can handle your exception in this class because if you know that you want to show the oone common message for each Exception or You are not sure that what type of exception is coming while dynamic time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SO CX_ROOT class is used for to handle any type of exception either is Airthemetic or Object type.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regard,&lt;/P&gt;&lt;P&gt;Nishant Bansal&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 15 Dec 2013 20:01:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737171#M1772816</guid>
      <dc:creator>nishantbansal91</dc:creator>
      <dc:date>2013-12-15T20:01:55Z</dc:date>
    </item>
    <item>
      <title>Re: Catch CX_ROOT vs Specific Exception</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737172#M1772817</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As a wise man, just one post above yours said:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 12.222222328186035px; color: #333333;"&gt;&lt;EM&gt;...catching cx_root is generally a no-go. Please keep in mind, that implicitly raised exceptions like CX_SY_REF_IS_INITIAL (when accessing an unbound object) are also catched and you won't receive a dump explaining what went wrong..&lt;/EM&gt;&lt;/P&gt;&lt;P style="font-size: 12.222222328186035px; color: #333333;"&gt;&lt;EM&gt;So unless you don't know exactly what you are doing, catch specific exceptions. If you catch CX_ROOT, you need to write additional logic, which helps you in the following aspects:&lt;/EM&gt;&lt;/P&gt;&lt;P style="font-size: 12.222222328186035px; color: #333333;"&gt;&lt;EM&gt;-re-raising certain exceptions, that should lead to a program exit (dump)&lt;/EM&gt;&lt;/P&gt;&lt;P style="font-size: 12.222222328186035px; color: #333333;"&gt;&lt;EM&gt;-output of the exact stack trace&lt;/EM&gt;&lt;/P&gt;&lt;P style="font-size: 12.222222328186035px; color: #333333;"&gt;&lt;EM&gt;-switching off stack trace output for end users&lt;/EM&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Dec 2013 06:31:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/catch-cx-root-vs-specific-exception/m-p/9737172#M1772817</guid>
      <dc:creator>matt</dc:creator>
      <dc:date>2013-12-16T06:31:19Z</dc:date>
    </item>
  </channel>
</rss>

