Erorr handling in Report triggers

Hi all!
I don't know if this is the right place to post this question, but I guess it goes as well here as anyplace else...
I've got a problem with a report I'm building using Reports Developer 6i. In the after parameter form trigger I want to check the in parameters and adjust them to fetch the correct data. To do this I use a cursor to find a unit using the date as in parameter. However, sometimes when I enter the wrong in parameters, I don't find any units for the specified date. In that case I would like to show an empty report, but in stead, the report exits with an error ORA-01403 message. I tried to avoid this using a WHENEVER SQLERROR CONTINUE; statement, but then the trigger wouldn't compile. Are there any other solutions to this?
regards
/ Anders

Hi,
First Of All, WhenEver SqlError caluse won't work on d2k reports as its compatible only to SQL envoirnment.
To overcome your problem, try the following :-
1) Handle exceptions where-ever SELECT clause is being used
- Except Data models
Begin
Select .....
Into .....
From
Where ......;
EXCEPTION
When NO_DATA_FOUND Then Null;
When OTHERS Then
<<You may want to display Oracle Error Message >>
End;
WHEN NO_DATA_FOUND Exception will trap the error 0RA-1403 and the NULL clause will allow the program to continue
Ta
Shailender Mehta

Similar Messages

  • Exception handling in report

    Hello all,
    i want oto implement exception handling in report.
    scenario:
    i have a parameter form par.fmb
    i provide parameter on form then call the report.
    if there is some error generate while query of report then how to handle it, so that user get the message.
    below query is used in report:
    SELECT SPC_ITEM_CODE,GENERATE_ITEM_NAME(SPC_ITEM_CODE),MOD_DATE,OBU,REQ_NO,REQ_QTY,OQC_QTY,SPC_ITEM_QTY,process
    , INSP_LOT_SIZE,REMARKS,INSP_STATUS
    FROM OQC_DATA
    WHERE (REQ_NO=:REQ_NO OR :REQ_NO IS NULL) AND trunc(MOD_DATE) BETWEEN :FROM_DATE AND :TO_DATE
    AND SPC_LOCN_CODE=:LOCN_CODE
    ORDER BY REQ_NO,SPC_ITEM_CODE
    here: GENERATE_ITEM_NAME(SPC_ITEM_CODE) is database function.
    as spc_item_code is column in OQC_DATA table, it any how there is null value in spc_item_code then error will raise, i and want to handle this error sothat ,
    i found the reason.
    Thanks
    yash
    Edited by: yash_08031983 on Jan 27, 2012 9:11 PM

    yash_08031983 wrote:
    Hello all,
    i want oto implement exception handling in report.
    scenario:
    i have a parameter form par.fmb
    i provide parameter on form then call the report.
    if there is some error generate while query of report then how to handle it, so that user get the message.
    below query is used in report:
    SELECT SPC_ITEM_CODE,GENERATE_ITEM_NAME(SPC_ITEM_CODE),MOD_DATE,OBU,REQ_NO,REQ_QTY,OQC_QTY,SPC_ITEM_QTY,process
    , INSP_LOT_SIZE,REMARKS,INSP_STATUS
    FROM OQC_DATA
    WHERE (REQ_NO=:REQ_NO OR :REQ_NO IS NULL) AND trunc(MOD_DATE) BETWEEN :FROM_DATE AND :TO_DATE
    AND SPC_LOCN_CODE=:LOCN_CODE
    ORDER BY REQ_NO,SPC_ITEM_CODE
    here: GENERATE_ITEM_NAME(SPC_ITEM_CODE) is database function.
    as spc_item_code is column in OQC_DATA table, it any how there is null value in spc_item_code then error will raise, i and want to handle this error sothat ,
    i found the reason.You can handle the error in two way.
    First from the function, you can use exception in it and through 0(zero) if it didn't get any value.
    2nd use nvl function in the sql like nvl(GENERATE_ITEM_NAME(SPC_ITEM_CODE),0) if number data type or NVL(GENERATE_ITEM_NAME(SPC_ITEM_CODE),'n/a') if char data type output.
    You can also use decode.
    Hope this will help you.

  • Report triggers

    Hello,
    I would like to create a trigger on "before report" to create several views. I have tried putting in some create view code into the pl/sql editor but keep getting errors.
    Can somebody give me a quick example of what the code should look like within the code block.
    function BeforePForm return boolean is
    begin
    return (TRUE);
    end;
    Thanks.

    Hi Jay,
    You should be able to put any valid PL/SQL code in the report triggers. Pl check the pre-requisites (ike privileges needed) and the examples of creating materialized views here:
    http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96540/statements_63a.htm#2064547
    Navneet.

  • How to handle multiple reports with single hyperlink parameter

    Please suggest in my drill down report
    i have two reports linked with one hyperlink
    parameter, how to handle this?
    please suggest for popup window with sample solution.
    for example
    report A--->B--->Chosse Report c or D
    based on parameter hyperlink at report B.
    Thanks in advance
    Raj

    Yes U R correct, that
    I'm using srw.set_hyperlink in plsql format trigger
    to open other reports , now the problem is
    how to carry over the hyperlink parameter to popup window
    and allow user to choose any reports based on the
    parameter value.
    for example
    report A (Sales person summmary report)
    |
    | (choose sales person drilled to orders report B)
    |
    B (report has the hyperlink on order no)
    |
    |
    C,D,E (many reports based on order no
    customer,order details,pending items
    to be shipped)
    Now how to handle the situation from b to c,d,e
    I suggest use hyperlink at B to open popup to show
    reports C,D,E with the order no has parameter.
    please suggest for javascript to open popup window
    for reports c,d,e.
    Thanks
    Raj

  • OSB 10gR3 Error handling and reporting action approach

    My use case:
    Simple Proxy service routes to an external web service created as Business service in OSB
    Whenever there is transport error/soap fault from the external web service, that error needs to be reported along with the original request received by the proxy service.
    What I have tried so far?
    Created a error handler/stage in the route node of my proxy service. Within that stage, added a report action to report $body which contains the error received from the external service. I created a report index key/value to report for this request, I used a specific element in the body of the original request sent to the proxy service.
    Within the route error handling stage, I realized that $body which had my original request to the proxy service lost its content and replaced by the fault from external WS. So I made a copy of $body in my request pipeline and tried to use an element from that copy to index my failed request. But the copied variable always seem to be empty within the error handling stage.
    So, my questions to the experts,
    1)What variables are visible within the error handling stage/scope?
    2)What is the best way(less overhead) to preserve my original request as $body context variable is already changed with fault by the time error handler is invoked? Remember I wanted to report the original request only incase of error, for success cases I don't care/I don't want to un-necessarily add an overhead of copying to a vairbale.
    3)Is there another proper way to simply report the original request received by proxy and fault received from external service for a given key in the request, say orderId
    Sample proxy request:
    <MyData>
    <OrderId>123</OrderId>
    </MyData>

    1)What variables are visible within the error handling stage/scope? $fault - http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/userguide/context.html#wp1051816
    $body - http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/userguide/context.html#wp1103311
    2)What is the best way(less overhead) to preserve my original request as $body context variable is already changed with fault by the time error handler is invoked? Remember I wanted to report the original request only incase of error, for success cases I don't care/I don't want to un-necessarily add an overhead of copying to a variable.Can you print $body and $fault variables in your error handler?. Are they different ? What I'm suspecting is the back-end webservice is faulting (returning soap-fault and http response =5xx). There is no other way I can think of than copying the contents of $body to a separate variable.
    Thanks
    Manoj

  • Exception Handling IR Report

    hi there,
    I have an interactive report, the SQL for which could fail for a number of reasons, is there any way to catch the individual exceptions and display a meaningful error message.
    Thanks...

    Hi Aparm,
    You can create an apex collection and build your interactive report on top of this collection. Create a PL-SQL process which will get executed before page header and populate collection data using your currect report query, you can handle all the exceptions in this process and display them using meaning error message.
    Search for apex collection or look at the apex documents to see examples of apex collections.
    Thanks,
    Manish

  • Customizing Notifications to handle incident reporting with SAP Personas

    Hi All,
    Currently my client is handling all kinds of safety related incidents in Lotus Notes.
    Requirements:
    1. The template they fill should be stored in the long text of the Notification in exactly the same way as they are filling in the template. For this, can I use standard text or any other feature?
    2. I want to use SAP Personas in front end.
    2. A separate notification is allocated for reporting any safety incidents. I dont see this as an issue.
    3. A workflow trigger to certain group of people in the Lotus notes informing on this.
    4. A group wide reporting. I dont see this as an issue.
    Cheers,
    Subbu

    1.       The template they fill should be stored in the long text of the Notification in exactly the same way as they are filling in the template. For this, can I use standard text or any other feature?
    You can use standard long text to fill the template. Try QQMA0025 PM/SM: Default values when adding a notification user exit to get the template details while creating notification.
    2.       I want to use SAP Personas in front end.
    Make more clear about this query. If you want to use Person Responsible & other partners in notification, use Partner Determination Procedure for the notification.
    3.       A separate notification is allocated for reporting any safety incidents. I dont see this as an issue.
    Skipping this as there is no issue.
    4.       A workflow trigger to certain group of people in the Lotus notes informing on this.
    Discuss with ABAP & Workflow consultants to trigger the mail. Its small development.
    5.       A group wide reporting. I dont see this as an issue.
    Skipping this as there is no issue.

  • Using stored packages in report triggers

    Hi,
    -- Among other things, my stored packages "per7x" is
    -- capable of creating a rather complex cross-table.
    -- A particular function returns this as a pl/sql table
    -- of integers (index by binary_integer).
    -- Another sub-program of the package creates a persistent
    -- pl/sql table representing the cross-table. This is the
    -- procedure "init_main" that has some parameters with
    -- default values. The function "get_main_value" returns
    -- a particular row/column value. (Of course, the table
    -- persists only for the duration of the database session.
    -- The following code runs fine from SQL*Plus
    -- (per7x.init_main takes a few seconds to complete, then,
    -- the next statement delivers the expected result):
    set serveroutput on;
    begin
    per7x.init_main;
    dbms_output.put_line(per7x.get_main_value(1,1));
    end;
    -- But now for some serious business. I want to retrieve
    -- these values from within a Developer/2000 Reports
    -- application. I figured calling "per7x.init_main" at
    -- the BeforeReport trigger and I would call
    -- "per7x.get_main_value" at the FormatTrigger level.
    -- But... calling the initialization procedure, as in:
    function BeforeReport return boolean is
    begin
    per7x.init_main;
    return (TRUE);
    end;
    -- results in:
    -- R30DES32 caused an invalid page fault in
    -- module PLS234.DLL at 0137:0050827c.
    -- and Reports will be shut down.
    -- the message:
    -- REP-1401: 'beforereport'. Fatal PL/SQL error occured.
    -- occurs when attempting to make a local copy of the
    -- pl/sql table instead of using the persistent structure.
    -- What goes wrong here??
    -- I am connected to: Oracle Workgroup Server 7.3.2.3.1
    -- with the Distributed Option, PL/SQL version 2.3.2.3.0
    -- (Windows NT 4.0)
    -- I use Developer/2000 version 2.0 (Reports 3.0.4.6.3)
    -- on Windows 95,
    -- SQL-Plus is version 3.3.4.0.0
    Any help would be very much appreciated,
    Paul Ramsteijn,
    Renal Replacement Registry of the Netherlands (RENINE).
    E-mail: [email protected]
    null

    hi,
    i'm back.. :)
    i attempted to use the following pl/sql code in a pl/sql process.
    begin
      for i in 1..apex_application.g_f01.count
      loop
        apc_user_pkg.update_user_role ( p_user_role_id     => apex_application.g_f02(i)
                                       ,p_start_on         => apex_application.g_f05(i)
                                       ,p_end_on           => apex_application.g_f06(i)
                                       ,x_last_updated_on  => apex_application.g_f09(i)
                                       ,x_last_updated_by  => apex_application.g_f10(i) );
      end loop;
    end;however, it doesn't seem to be working properly.. it doesn't update the table.. after the page refreshes, the old data comes back and not the new one.
    what am i doing wrong?
    regards,
    allen

  • DATA_CHANGED event handler is not triggered after input.(OO ALV)

    Dear Experts,
    What I did:
    I register Enter as the trigger event for data_changed event, and I put my checking logic in data_changed_handler which is a method of a local class. When the checking fails, I put messages using er_data_changed->add_protocal_entry to show messages.
    My checking is simple, if the cell is empty, error messages pops up tells that this cell can not be blank for this row.
    My problem:
    When there is no entry in the alv list(Only this situation), I insert a new entry, the cell which is required is empty, I press Enter, data_changed event is triggered, the message pops up saying that the cell is required. Then close the pop up message window, I input something in the cell, and press enter. The data_changed event is not triggered.
    Is there any1 has any ideas on this problem?
    Vicnent
    Edited by: Changjiu Tan on Sep 7, 2009 1:33 PM

      METHOD HANDLE_DATA_CHANGED.                               "#EC NEEDED
    *<<<  BEGIN MODIFY EXAMPLE CODE
    *   u4FDDu5B58u30C7u30FCu30BFu3092u7DE8u96C6u3059u308Bu3000START
        DATA: LW_INS      TYPE LVC_S_MOCE,
              LV_FNAME    TYPE LVC_FNAME,
              LW_MOD      TYPE LVC_S_MODI,
              LV_MAX      TYPE I,
              LV_RES(12)  TYPE C,
              LW_LIST     TYPE ZTSRE012,
              LV_ROWID    TYPE LVC_S_ROID,
              LT_MOD      TYPE LVC_T_MODI,
              LV_COLID    TYPE LVC_S_COL,
              LV_ROW_ID    TYPE LVC_S_ROW,
              LV_COL_ID    TYPE LVC_S_COL.
    *   u73FEu5728u306Eu30D5u30A9u30FCu30ABu30B9u4F4Du7F6Eu3092u53D6u5F97
        CALL METHOD GO_ALV_GRID7->GET_CURRENT_CELL
          IMPORTING
            ES_ROW_ID = LV_ROW_ID
            ES_COL_ID = LV_COL_ID.
        LOOP AT GT_LIST INTO LW_LIST.
          IF LW_LIST-ID > LV_MAX.
            LV_MAX = LW_LIST-ID.
          ENDIF.
        ENDLOOP.
    *   u30B0u30EBu30FCu30D7ID
        LV_FNAME = CNS_ID.
        LOOP AT ER_DATA_CHANGED->MT_INSERTED_ROWS INTO LW_INS.
          LV_MAX = LV_MAX + 1.
          CALL METHOD ER_DATA_CHANGED->MODIFY_CELL
            EXPORTING
              I_ROW_ID    = LW_INS-ROW_ID
              I_FIELDNAME = LV_FNAME
              I_VALUE     = LV_MAX.
        ENDLOOP.
        CLEAR: LV_FNAME.
        LT_MOD[] = ER_DATA_CHANGED->MT_GOOD_CELLS[].
    *   u30C7u30FCu30BFu30C1u30A7u30C3u30AF
        LOOP AT LT_MOD INTO LW_MOD.
          IF LW_MOD-FIELDNAME = CNS_ZZTTSN.
            LV_COLID-FIELDNAME = LW_MOD-FIELDNAME.
            LV_ROWID-ROW_ID    = LW_MOD-ROW_ID.
            CALL METHOD GO_ALV_GRID7->SET_CURRENT_CELL_VIA_ID
              EXPORTING
                IS_COLUMN_ID = LV_COLID
                IS_ROW_NO    = LV_ROWID.
            CALL METHOD GO_ALV_GRID7->GET_CURRENT_CELL
              IMPORTING
                E_VALUE = LV_RES.
            IF LV_RES IS INITIAL.
              CALL METHOD ER_DATA_CHANGED->ADD_PROTOCOL_ENTRY
                EXPORTING
                  I_MSGID     = CNS_MSGID
                  I_MSGTY     = CNS_MSGTY
                  I_MSGNO     = CNS_MSGNO
                  I_FIELDNAME = LW_MOD-FIELDNAME
                  I_ROW_ID    = LW_MOD-ROW_ID.
            ENDIF.
            CALL METHOD ER_DATA_CHANGED->MODIFY_CELL
              EXPORTING
                I_ROW_ID    = LW_MOD-ROW_ID
                I_FIELDNAME = LW_MOD-FIELDNAME
                I_VALUE     = LV_RES.
           ENDIF.
          CLEAR:  LV_RES,
                  LV_COLID,
                  LV_ROWID.
        ENDLOOP.
        CALL METHOD GO_ALV_GRID7->SET_CURRENT_CELL_VIA_ID
          EXPORTING
            IS_ROW_ID    = LV_ROW_ID
            IS_COLUMN_ID = LV_COL_ID.
      ENDMETHOD.                    "handle_data_changed
    Edited by: Changjiu Tan on Sep 7, 2009 1:31 PM
    Edited by: Changjiu Tan on Sep 7, 2009 1:32 PM

  • Before report triggers in crystal

    Post Author: vdm
    CA Forum: Data Connectivity and SQL
    Hi,
    I need to develop a report the data for which cannot be easily selected from tables using a sql statement. It needs to first call a stored procedure which would populate some temp tables and crystal would then report from these temp tables.I am from Oracle reports background which has a before report trigger in which you could put any of this pre-processing but not sure if crystal (CR XI) has the equivalent of that.what I did try with crystal was this :- 1. On my main report I have this query - select * from temp......2.I have put a sub-report in my Report Header section. This sub-report calls a sql server stored procedure which populates the temp table.But what I am finding is that before the sub-report is called crystal has already executed the select statement -which is still empty at this stage.Question:1.What I am trying to do is just not possible to do in crystal ?2. Or is there a way that I can stop crystal from executing the main select statement until the sub-report has been called ?thanks in advanceVishal 

    Post Author: bettername
    CA Forum: Data Connectivity and SQL
    Why not just use a single Command object as your datasource, and have it contain the following sql:
    exec sp_your_stored_procedure
    --that should have generated your temp_table
    select * from your_temp_table
    drop table your_temp_table --or not, depending on your preference...

  • OIM-error handling and reporting

    1. When i run any scheduled task... the logs show the exception trace. In addition to it, i have included the code to fetch the exception details into a text file(in try catch block). If task results in an error Status coloumn shows 'Error'
    IS there any way... i can display the exception name instead to 'Error' to be more specific.
    2. To handle error efficiently, are there any audit tables in OIM database... that can store the error details... which can be used later to generate an error report

    any updates on this?

  • Reports triggering

    when a trigerred report executes, blank pages print, however when the smae report is run from the menu system it is ok. Have already applied patch 3a. any tips

    <BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Grant Duncan ([email protected]):
    when a trigerred report executes, blank pages print, however when the smae report is run from the menu system it is ok. Have already applied patch 3a. any tips<HR></BLOCKQUOTE>
    Try passing the parameter BLANKPAGES = NO

  • Referencing translated boilerplates from TranslationHub in reports triggers

    Hi!
    We have following problem: We use TranslationHub to translate our reports. Despite in TranslationHub are shown more objects than boilerplates it seems to translate only boilerplates.
    So my idea is to define all required text for trigger as boilerplate in a frame with format trigger, which hide this on report.
    But I don't find a possibility to reference the text of an boilerplate! Does this not exist or do I miss something?
    regards

    I've managed to solve this, I believe. Don't experience any crashes and X startes in tty7, as it should.
    I've moved this line to the end of my inittab instead of the beginning.
    x:5:once:/bin/su shahin -l -c "/bin/bash --login -c /usr/bin/startx >/dev/null 2>&1"
    So my inittab looks like this now.
    # /etc/inittab
    # Runlevels:
    # 0 Halt
    # 1(S) Single-user
    # 2 Not used
    # 3 Multi-user
    # 4 Not used
    # 5 X11
    # 6 Reboot
    ## Only one of the following two lines can be uncommented!
    # Boot to console
    #id:3:initdefault:
    # Boot to X11
    id:5:initdefault:
    rc::sysinit:/etc/rc.sysinit
    rs:S1:wait:/etc/rc.single
    rm:2345:wait:/etc/rc.multi
    rh:06:wait:/etc/rc.shutdown
    su:S:wait:/sbin/sulogin -p
    # -8 options fixes umlauts problem on login
    c1:2345:respawn:/sbin/agetty -8 38400 tty1 linux
    c2:2345:respawn:/sbin/agetty -8 38400 tty2 linux
    c3:2345:respawn:/sbin/agetty -8 38400 tty3 linux
    c4:2345:respawn:/sbin/agetty -8 38400 tty4 linux
    c5:2345:respawn:/sbin/agetty -8 38400 tty5 linux
    c6:2345:respawn:/sbin/agetty -8 38400 tty6 linux
    # Hypervisor Virtual Console for Xen and KVM
    #h0:2345:respawn:/sbin/agetty -8 38400 hvc0 linux
    ca::ctrlaltdel:/sbin/shutdown -t3 -r now
    # Example lines for starting a login manager
    #x:5:respawn:/usr/bin/xdm -nodaemon
    #x:5:respawn:/usr/sbin/gdm -nodaemon
    #x:5:respawn:/usr/bin/kdm -nodaemon
    #x:5:respawn:/usr/bin/slim >& /dev/null
    x:5:once:/bin/su shahin -l -c "/bin/bash --login -c /usr/bin/startx >/dev/null 2>&1"
    # End of file
    Last edited by shahin (2010-04-14 10:57:47)

  • Dynamic column handling in reports of BPC 10.0 NW EPM Add in

    Hello All,
    My requirement is to have 3 columns. Col1 is defined based on Context selection from TIME dimension . Col2 is defined based on EPMoffset function based on Col1. Col3  to be shown always previous year with Dec month (2014.12). Say for Example : if current context is 2015.03 , then Col3 should populate value for 2014.12.
    I am having problem in calculation of Col3 . please can someone share the inputs on this calculation.
    Thanks!
    Veer

    Hi Veer,
    C1 : Get the Context value of time.
    In Another cell get the Year of C1 either by using EPMMemberProperty function or by some other method.
    C2 : Use EPMMemberoffset function to get the last year of C1 with offset -1.
    C3 : Concatenate the C2 year with ".12".
    Hope it helps.
    Regards
    Rohit

  • What is Triggering and Handling Events  in ABAP  OOPs

    Gowri

    ) TYPE type ..
    To declare static events, use the following statement:
    CLASS-EVENTS ... ...
    It links a list of handler methods with corresponding trigger methods.  There are four different types of event.
    It can be
    ·        An instance event declared in a class
    ·        An instance event declared in an interface
    ·        A static event declared in a class
    ·        A static event declared in an interface
    The syntax and effect of the SET HANDLER depends on which of the four cases listed above applies. 
    For an instance event, you must use the FOR addition to specify the instance for which you want to register the handler.  You can either specify a single instance as the trigger, using a reference variable
    After the RAISE EVENT statement, all registered handler methods are executed before the next statement is processed (synchronous event handling).  If a handler method itself triggers events, its handler methods are executed before the original handler method continues. To avoid the possibility of endless recursion, events may currently only be nested 64 deep.
    Handler methods are executed in the order in which they were registered.  Since event handlers are registered dynamically, you should not assume that they will be processed in a particular order. Instead, you should program as though all event handlers will be executed simultaneously.
    "Example  :
    REPORT demo_class_counter_event.
    CLASS counter DEFINITION.
      PUBLIC SECTION.
        METHODS increment_counter.
        EVENTS  critical_value EXPORTING value(excess) TYPE i.
      PRIVATE SECTION.
        DATA: count     TYPE i,
              threshold TYPE i VALUE 10.
    ENDCLASS.
    CLASS counter IMPLEMENTATION.
      METHOD increment_counter.
        DATA diff TYPE i.
        ADD 1 TO count.
        IF count > threshold.
          diff = count - threshold.
          RAISE EVENT critical_value EXPORTING excess = diff.
        ENDIF.
      ENDMETHOD.
    ENDCLASS.
    CLASS handler DEFINITION.
      PUBLIC SECTION.
        METHODS handle_excess
                FOR EVENT critical_value OF counter
                IMPORTING excess.
    ENDCLASS.
    CLASS handler IMPLEMENTATION.
      METHOD handle_excess.
        WRITE: / 'Excess is', excess.
      ENDMETHOD.
    ENDCLASS.
    DATA: r1 TYPE REF TO counter,
          h1 TYPE REF TO handler.
    START-OF-SELECTION.
      CREATE OBJECT: r1, h1.
      SET HANDLER h1->handle_excess FOR ALL INSTANCES.
      DO 20 TIMES.
        CALL METHOD r1->increment_counter.
      ENDDO.
    The class COUNTER implements a counter. It triggers the event CRITICAL_VALUE when a threshold value is exceeded, and displays the difference. HANDLER can handle the exception in COUNTER. At runtime, the handler is registered for all reference variables that point to the object.
    Reward  points if it is usefull ...
    Girish

Maybe you are looking for