Pblm with exception handling

when I enter an input 10a in the the dialogbox Enter monthly payment , it prompts me to enter a valid data. If I again enter 10a , actualy Enter valid data dialog box must be displayed.Instead it displays Enter monthly payment . Even if I enter 100 in Enter valid data dialog box, it again displays Enter monthly payment. I'v been try to fix this. Can anyone help me. Thanks
import javax.swing.*;
import java.text.*;
public class TestTryCatch{
   public static void main(String[] args){
      String choice = "";
      boolean tryAgain = true;
      String string = "1";
      while (!(choice.equalsIgnoreCase("x"))){
              while (tryAgain){
                   System.out.println("tryAgain before try :" + tryAgain);
             try{
                     String paymentString = JOptionPane.showInputDialog(
                                                null,
                                                     "Enter monthly payment: ",
                                                     "Future Value",
                                                 JOptionPane.PLAIN_MESSAGE);
                    double monthlyPayment = Double.parseDouble(paymentString);
                    //tryAgain = false;
                    paymentString = string;
                    monthlyPayment = Double.parseDouble(paymentString);
                    System.out.println("1");
                   /* Static method to validate monthlyPayment*/
                 if(monthlyPayment <=0)
                    validateMonthlyPayment(monthlyPayment);
                 String rateString = JOptionPane.showInputDialog(
                                         null,
                                         "Enter yearly interest rate: ",
                                         "Future Value",
                                         JOptionPane.PLAIN_MESSAGE);
                   double interestRate = Double.parseDouble(rateString);
                   //tryAgain=false;
                   System.out.println("2");
                     /* Static method to validate interestRate*/
                   interestRate = validateInterestRate(interestRate);
                   double monthlyInterestRate = interestRate/12/100;
                   String yearsString = JOptionPane.showInputDialog(
                                             null,
                                              "Enter number of years: ",
                                              "Future Value",
                                           JOptionPane.PLAIN_MESSAGE);
                  int years = Integer.parseInt(yearsString);
                years = validateYears(years);
                   int months = years * 12;
                   //tryAgain = false;
                   double futureValue = calculateFutureValue(monthlyPayment,
                                                                     months,
                                                                     monthlyInterestRate);
                     NumberFormat currency = NumberFormat.getCurrencyInstance();
                    NumberFormat percent = NumberFormat.getPercentInstance();
                    percent.setMinimumFractionDigits(2);
                    String message =
                                 "Monthly payment: " + currency.format(monthlyPayment) + "\n"
                               + "Yearly interest rate: " + percent.format(interestRate/100) + "\n"
                               + "Number of years: " +  years + "\n"
                               + "Future value: " + currency.format(futureValue) + "\n\n"
                               + "To continue, press Enter.\n"
                               + "To exit, enter 'x': ";
                    choice = JOptionPane.showInputDialog(null,
                                                                  message,
                                                                 "Future Value",
                                                                 JOptionPane.PLAIN_MESSAGE);
                    System.out.println("choice is : " + choice);
             } // end try loop
                //tryAgain = false;
                   catch(NumberFormatException e){
                        string = JOptionPane.showInputDialog(
                                                          null,
                                                        "Enter a valid data: ",
                                                        "Future Value",
                                                      JOptionPane.PLAIN_MESSAGE);
                       /* String rateString = JOptionPane.showInputDialog(
                                                              null,
                                                             "Enter a valid interest rate: ",
                                                             "Future Value",
                                                            JOptionPane.PLAIN_MESSAGE);
                       double validateRate = Double.parseDouble(rateString);
                       String yearsString = JOptionPane.showInputDialog(
                                                               null,
                                                              "Enter valid number of years " +"\n"+
                                                              "between 0 to 100 : ",
                                                              "Future Value",
                                                              JOptionPane.PLAIN_MESSAGE);
                int years = Integer.parseInt(yearsString);*/
                  } // end catch
               }//end tryAgain
       } // end while loop
      System.exit(0);
   }//end main
   private static double calculateFutureValue(double monthlyPayment,
   int months, double interestRate){
      int i = 1;
      double futureValue = 0;
      while (i <= months) {
         futureValue = (futureValue + monthlyPayment) *
         (1 + interestRate);
         i++;
      return futureValue;
   } // end calculateFutureValue method
   private static void validateMonthlyPayment(double monthlyPayment){
      while(monthlyPayment <= 0) { // while loop to validate monthlyPayment
              String paymentString = JOptionPane.showInputDialog(
                                             null,
                                           "Enter a valid monthly payment: ",
                                           "Future Value",
                                         JOptionPane.PLAIN_MESSAGE);
              monthlyPayment = Double.parseDouble(paymentString);
       } // end while loop monthlyPayment validation
   } // end validateMonthlyPayment
   private static double validateInterestRate(double validateRate){
      while(validateRate <= 0) { // while loop to validate interestrate
              String rateString = JOptionPane.showInputDialog(
                                            null,
                                           "Enter a valid interest rate: ",
                                           "Future Value",
                                          JOptionPane.PLAIN_MESSAGE);
              validateRate = Double.parseDouble(rateString);
      } // end while loop
      return validateRate;
   } // end validateInterestRate method
   private static int validateYears(int years){
          while(years <= 0 || years>= 100){
              String yearsString = JOptionPane.showInputDialog(
                                            null,
                                           "Enter valid number of years " +"\n"+
                                           "between 0 to 100 : ",
                                           "Future Value",
                                         JOptionPane.PLAIN_MESSAGE);
         years = Integer.parseInt(yearsString);
      return years;
}

Too much code. Yo udon't need all that Swing stuff to see how to make this work.
This works - see if you can adapt it:
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
public class TryAgainTester
    public static void main(String [] args)
        double payment      = 0.0;
        boolean tryAgain    = true;
        String entry        = "";
        while (tryAgain)
            try
                System.out.print("Enter payment: ");
                entry       = getString(System.in);
                payment     = Double.parseDouble(entry);
                tryAgain    = false;
            catch (NumberFormatException e)
                System.err.println("Invalid entry: " + entry);
                tryAgain = true;
            catch (Exception e)
                e.printStackTrace();
        System.out.println("payment: " + payment);
    public static String getString(InputStream in) throws IOException
        String value = "";
        InputStreamReader isr = new InputStreamReader(in);
        BufferedReader br       = new BufferedReader(isr);
        value = br.readLine();
        return value;

Similar Messages

  • Issue with exception Handling in GG

    Hi,
    I have bi-directional DML replication setup. I have written a code in replication parameter for handling the exception , Exception handling is working fine my replicate process is not getting ABENDED but Issue is I am not geeting any rows in EXCEPTION table.I had gone through replicat report, there I had seen GG is trying to inser duplicate records in EXCEPTION TABLE and it is failing because of that .
    **Command for create Exception Table is-**
    create table ggs_admin.exceptions (
    rep_name      varchar2(8) ,
    table_name      varchar2(61) ,
    errno      number ,
    dberrmsg      varchar2(4000) ,
    optype               varchar2(20) ,
    errtype           varchar2(20) ,
    logrba               number ,
    logposition          number ,
    committimestamp      timestamp,
    CONSTRAINT pk_exceptions PRIMARY KEY (logrba, logposition, committimestamp)
    USING INDEX
    TABLESPACE INDX1
    TABLESPACE dbdat1
    My replication parameter is-
    GGSCI (db) 1> view params rep2
    -- Replicator parameter file to apply changes
    REPLICAT rep2
    ASSUMETARGETDEFS
    USERID ggs_admin, PASSWORD ggs_admin
    DISCARDFILE /u01/app/oracle/product/gg/dirdat/rep2_discard.dsc, PURGE
    -- Start of the macro
    MACRO #exception_handler
    BEGIN
    , TARGET ggs_admin.exceptions
    , COLMAP ( rep_name = "REP2"
    , table_name = @GETENV ("GGHEADER", "TABLENAME")
    , errno = @GETENV ("LASTERR", "DBERRNUM")
    , dberrmsg = @GETENV ("LASTERR", "DBERRMSG")
    , optype = @GETENV ("LASTERR", "OPTYPE")
    , errtype = @GETENV ("LASTERR", "ERRTYPE")
    , logrba = @GETENV ("GGHEADER", "LOGRBA")
    , logposition = @GETENV ("GGHEADER", "LOGPOSITION")
    , committimestamp = @GETENV ("GGHEADER", "COMMITTIMESTAMP"))
    , INSERTALLRECORDS
    , EXCEPTIONSONLY;
    END;
    -- End of the macro
    REPERROR (DEFAULT, EXCEPTION)
    --REPERROR (-1, EXCEPTION)
    --REPERROR (-1403, EXCEPTION)
    MAP scr.order_items, TARGET scr.order_items;
    MAP scr.order_items #exception_handler();
    GGSCI (db) 2>view params rep2
    MAP resolved (entry scr.order_items):
    MAP "scr"."order_items" TARGET ggs_admin.exceptions , COLMAP ( rep_name = "REP2" , table_name = @GETENV ("GGHEADER", "TABLENAME") , errno = @GETENV ("LASTERR", "DB
    ERRNUM") , dberrmsg = @GETENV ("LASTERR", "DBERRMSG") , optype = @GETENV ("LASTERR", "OPTYPE") , errtype = @GETENV ("LASTERR", "ERRTYPE") , logrba = @GETENV ("GGHEADER"
    , "LOGRBA") , logposition = @GETENV ("GGHEADER", "LOGPOSITION") , committimestamp = @GETENV ("GGHEADER", "COMMITTIMESTAMP")) , INSERTALLRECORDS , EXCEPTIONSONLY;;
    Using the following key columns for target table GGS_ADMIN.EXCEPTIONS: LOGRBA, LOGPOSITION, COMMITTIMESTAMP.
    2012-08-30 09:09:00 WARNING OGG-01154 SQL error 1403 mapping scr.order_items to scr.order_items OCI Error ORA-01403: no data found, SQL <DELETE FROM "scr"."order_items" WHERE "SUBSCRIBER_ID" = :b0>.
    2012-08-30 09:09:00 WARNING OGG-00869 OCI Error ORA-00001: unique constraint (GGS_ADMIN.PK_EXCEPTIONS) violated (status = 1). INSERT INTO "GGS_ADMIN"."EXCEPTIONS" ("R
    EP_NAME","TABLE_NAME","ERRNO","DBERRMSG","OPTYPE","ERRTYPE","LOGRBA","LOGPOSITION","COMMITTIMESTAMP") VALUES (:a0,:a1,:a2,:a3,:a4,:a5,:a6,:a7,:a8).
    2012-08-30 09:09:00 WARNING OGG-01004 Aborted grouped transaction on 'GGS_ADMIN.EXCEPTIONS', Database error 1 (OCI Error ORA-00001: unique constraint (GGS_ADMIN.PK_EX
    CEPTIONS) violated (status = 1). INSERT INTO "GGS_ADMIN"."EXCEPTIONS" ("REP_NAME","TABLE_NAME","ERRNO","DBERRMSG","OPTYPE","ERRTYPE","LOGRBA","LOGPOSITION","COMMITTIMES
    TAMP") VALUES (:a0,:a1,:a2,:a3,:a4,:a5,:a6,:a7,:a8)).
    2012-08-30 09:09:00 WARNING OGG-01003 Repositioning to rba 92383 in seqno 8.
    2012-08-30 09:09:00 WARNING OGG-01154 SQL error 1403 mapping scr.order_items to scr.order_items OCI Error ORA-01403: no data found, SQL <DELETE FROM "scr"."order_items" WHERE "SUBSCRIBER_ID" = :b0>.
    2012-08-30 09:09:00 WARNING OGG-01154 SQL error 1 mapping scr.order_items to GGS_ADMIN.EXCEPTIONS OCI Error ORA-00001: unique constraint (GGS_ADMIN.PK_EXCEPTIONS)
    violated (status = 1). INSERT INTO "GGS_ADMIN"."EXCEPTIONS" ("REP_NAME","TABLE_NAME","ERRNO","DBERRMSG","OPTYPE","ERRTYPE","LOGRBA","LOGPOSITION","COMMITTIMESTAMP") VAL
    UES (:a0,:a1,:a2,:a3,:a4,:a5,:a6,:a7,:a8).
    2012-08-30 09:09:00 WARNING OGG-01003 Repositioning to rba 92383 in seqno 8.
    When I am running command
    select * from exceptions;
    no row selected.
    Please help. Why duplicat rows trying to insert in Exception table.

    Remove (disable) the constraint on the exceptions table and see if inserts will take place. Do you really need that primary key?

  • Having troubles with exception handling

    Do you have Objective-C exception handling turned on?

    etresoft wrote:
    Den B. wrote:
    I'm sorry, but how do you do that?
    Double-click the project entry at the top of your Xcode file list.
    Click the Build tab
    Search for "exception"
    Yeah, I did this in the first place but I still can't catch that exception in the code block I posted above. In the console window they call it NSInvalidArgumentException but when I put it specifically into the @catch statement it doesn't want to compile...

  • Multiple Idocs to XI with exception handling.

    Hi,
    I m doing a scenario,sending multiple idocs to file via XI.while doing dis,i m using BPM.For the BPM part i m following the blog https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/2034..but [original link is broken] [original link is broken] [original link is broken] [original link is broken] wen i check in SXMB_MONI,my message isn't successfully processed out f BPM.In this,exception is triggered at d beginning.and it always throw exception and message not successfully processed out f BPM.In the workflow it is showing error in the first step and remaining steps are compIeted.Here, i m throwing exception by the use f deadline branch.Can,anybody tell me how to handle dis exception/error?

    Hi Rajeev,
    I am using a loop with in a block inside the BPM inside which receive step and container element is used.In parallel to loop branch,i m using deadline and exception branch same as in blog 2034.i m using infinite loop wid time limit mentioned in the deadline branch.After coming out f dis block,i m using transformation step and den send step is used.When i check in graphical workflow,i m getting error in send step stating that an empty container element is used while sending.But,wen i m checking technical workflow,i m getting error in first step after the creation of workflow and workflow started messages in the log details.after which the exception occured is shown in the workflow system..
    Thanks,
    Anoop Garg

  • RichDialog doesn't close with exception handling in DialogListener

    I have a RichPopup with a child that is a RichDialog. The popup is called using a command button with a showPopupBehavior child.
    I have a DialogListener on the RichDialog that calls a web service method through a proxy.
    I added a try/catch block around the web service method call and then added a call to the FacesContext to add a message to display to the user. If there is an exception thrown from the service (simulated at this point) the message is displayed, but the screen is greyed out and the dialog will not close.
    What am I missing?
    Thanks,
    Al
    Message was edited by:
    Al-2000

    I don't think there are any examples, however something like this might do the trick:
    ---- Put this in your page ----
    <f:verbatim>
    <![CDATA[
    <script>/*ignore the leading greater-than symbol that this forum adds to the start of this line*/
    function closeMyPopup()
      var popup = AdfPage.PAGE.findComponent("myPopupClientId");
      popup.hide();
    </script>
    ]]>
    </f:verbatim>---- Put this in your Java code where you deal with the error ----
    ExtendedRenderKitService erks =
      Service.getService(
        facesContext.getRenderKit(),
        ExtendedRenderKitService.class); 
    erks.addScript(facesContext, "closeMyPopup();");See also the org.apache.myfaces.trinidad.render.ExtendedRenderKitService JavaDoc:
    http://www.oracle.com/technology/products/adf/adffaces/11/doc/multiproject/adf-faces-api/apidocs/org/apache/myfaces/trinidad/render/ExtendedRenderKitService.html
    Regards,
    Matt

  • Dynamic graphic in smartform with exception handle.

    Hi All,
    I have already created a graphic node in the PO Smartform which will display the buyer signature, i have uploaded some signatures graphics to the server and used the &PO-CREATED_BY& parameter in the general attributes of the node. The signature gets displayed fine if the graphic with the buyer's username as name exist.
    But what i'm looking for is: what to do if the graphic doesn't exist (the standard behavior is an error message and its not displaying the preview of the smartform). I would like to set a 'default' graphic (blank image) as the image is the user signature image doesn't exist, but i cannot find the place where i need to implement some logic to do that validation effort.
    I'll appreciate your comments rewarding points for useful answers.
    Regards,
    Gerardo.

    Hi,
    Check the table: STXBITMAPS for the graphics image what yuu are looking for.
    If it is existing, then write a SELECT query in code lines and store the value in a variable.
    [ Declare this in the Global definition part ].
    Then create a window to display the graphics image [ do not create a grpahics node] and add a ALTERNATIVE node.
    Here check the work area variable and put separate graphics in the True node and in the FALSE node.
    Hope this helps.
    Regards
    Subramanian

  • Exception Handling with GUI

    Hi,
    I'm new to Java so I'm a little rusty with exception handling. Please help me with this portion of my code. I'm supposed to screen out the bad input by the user. The user has to enter a double value and not an illegal value, for example: 45ab would be unacceptable. I've tried this way but after entering a number, the program just exits. Thanks first for helping me out.
    import javax.swing.*;
    import java.io.*;
    import java.text.*;
    public class Circle {
    public static double readDouble() {
    boolean done = false;
    String s;
    double d=0;
    while (!done) {
    JOptionPane.showInputDialog("Enter a double : ");
    System.out.flush();
    try {
    BufferedReader in = new BufferedReader (
    new InputStreamReader(System.in));
    s = in.readLine();
    d = Double.parseDouble(s);
    d = new Double(s).doubleValue();
    done = true;
    }catch (IOException e){
    done = true;
    }catch (NumberFormatException e1){
    JOptionPane.showMessageDialog(null,"Error -- input a double -- Try again");
    return d;
    public static void area(){
    double radius1;
    double area;
    radius1 = readDouble();
    area = (radius1 * radius1) * Math.PI;
    // Rounding the area value to 2 decimal places
    NumberFormat nf = NumberFormat.getNumberInstance();
    nf.setMaximumFractionDigits(2);
    JOptionPane.showMessageDialog(null, "The area is " + nf.format(area));
    // There are more code after this.

    Hello, I quickly wrote a possible solution to your problem, hope it will help you. (ICQ #28985387)
    import javax.swing.*;
    public class InputExample {
    public static double getDouble() {
    String input;
    do {
    input = JOptionPane.showInputDialog(null, "Enter a double", "Input", JOptionPane.QUESTION_MESSAGE);
    } while(!validateDouble(input));
    return Double.parseDouble(input);
    private static boolean validateDouble(String input) {
    double num = 0;
    try {
    if(input.length() == 0) {
    JOptionPane.showMessageDialog(null, "Please enter a value", "Warning", JOptionPane.WARNING_MESSAGE);
    return false;
    num = Double.parseDouble(input);
    } catch(NullPointerException exception) {
    System.exit(0);
    } catch(NumberFormatException exception) {
    JOptionPane.showMessageDialog(null, "Not a double", "Warning", JOptionPane.WARNING_MESSAGE);
    return false;
    if (num < -Double.MAX_VALUE || Double.MAX_VALUE < num) {
    JOptionPane.showMessageDialog(null, "Must be between\n" + (-Double.MAX_VALUE) + "\nand " + Double.MAX_VALUE, "Warning", JOptionPane.WARNING_MESSAGE);
    return false;
    return true;
    }

  • Exception handling for all the insert statements in the proc

    CREATE PROCEDURE TEST (
    @IncrStartDate DATE
    ,@IncrEndDate DATE
    ,@SourceRowCount INT OUTPUT
    ,@TargetRowCount INT OUTPUT
    ,@ErrorNumber INT OUTPUT
    ,@ErrorMessage VARCHAR(4000) OUTPUT
    ,@InsertCase INT --INSERT CASE INPUT
    WITH
    EXEC AS CALLER AS
    BEGIN --Main Begin
    SET NOCOUNT ON
    BEGIN TRY
    DECLARE @SuccessNumber INT = 0
    ,@SuccessMessage VARCHAR(100) = 'SUCCESS'
    ,@BenchMarkLoadFlag CHAR(1)
    ,@BenchmarkFlow INT
    ,@MonthYearStart DATE
    ,@MonthYearEnd DATE
    ,@StartDate DATE
    ,@EndDate DATE
    /* Setting the default values of output parameters to 0.*/
    SET @SourceRowCount = 0
    SET @TargetRowCount = 0
    /*Setting the Start and end date for looping */
    SET @MonthYearStart = @IncrStartDate;
    SET @MonthYearEnd = @IncrEndDate;
    /* Setting the @InsertCase will ensure case wise insertion as this sp will load data in different tables
    @InsertCase =0 means data will be inserted in the target TAB1
    @InsertCase =1 means data will be inserted in the target TAB2
    @InsertCase =2 means data will be inserted in the target TAB3
    @InsertCase =3 means data will be inserted in the target TAB4
    @InsertCase =4 means data will be inserted in the target TAB5
    @InsertCase =5 means data will be inserted in the target TAB6
    if @InsertCase =0
    WHILE (@MonthYearStart <= @MonthYearEnd)
    BEGIN
    SET @StartDate = @MonthYearStart;
    SET @EndDate = @MonthYearEnd;
    /* Delete from target where date range given from input parameter*/
    DELETE FROM TAB1
    WHERE [MONTH] BETWEEN MONTH(@StartDate) AND MONTH(@EndDate)
    AND [YEAR] BETWEEN year(@StartDate) and year(@EndDate)
    /*Insert data in target-TAB1 */
    BEGIN TRANSACTION
    INSERT INTO TAB1
    A,B,C
    SELECT
    A,BC
    FROM XYZ
    COMMIT TRANSACTION
    SET @MonthYearStart = DATEADD(MONTH, 1, @MonthYearStart)
    SELECT @TargetRowCount = @TargetRowCount + @@ROWCOUNT;
    END -- End of whileloop
    END TRY
    BEGIN CATCH
    IF @@TRANCOUNT>0
    ROLLBACK TRANSACTION
    SELECT @ErrorNumber = ERROR_NUMBER() ,@ErrorMessage = ERROR_MESSAGE();
    END CATCH
    END--End of Main Begin
    I have the above proc inserting data based on parameters  where in @InsertCase  is used for case wise execution.
     I have written the whole proc with exception handling using try catch block.
    I have just added one insert statement here for 1 case  now I need to add further insert  cases
    INSERT INTO TAB4
                    A,B,C
    SELECT
                                    A,BC
    FROM XYZ
    INSERT INTO TAB3
                    A,B,C
    SELECT
                                    A,BC
    FROM XYZ
    INSERT INTO TAB2
                    A,B,C
    SELECT
                                    A,BC
    FROM XYZ
    I will be using following to insert further insert statements 
    if @InsertCase =1 
    I just needed to know where will be my next insert statement should be fitting int his code so that i cover exception handling for all the code
    Mudassar

    Hi Erland & Mudassar, I have attempted to recreate Mudassar's original problem..here is my TABLE script;
    USE [MSDNTSQL]
    GO
    /****** Object: Table [dbo].[TAB1] Script Date: 2/5/2014 7:47:48 AM ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE TABLE [dbo].[TAB1](
    [COL1] [nvarchar](1) NULL,
    [COL2] [nvarchar](1) NULL,
    [COL3] [nvarchar](1) NULL,
    [START_MONTH] [int] NULL,
    [END_MONTH] [int] NULL,
    [START_YEAR] [int] NULL,
    [END_YEAR] [int] NULL
    ) ON [PRIMARY]
    GO
    Then here is a CREATE script for the SPROC..;
    USE [MSDNTSQL]
    GO
    /****** Object: StoredProcedure [dbo].[TryCatchTransactions1] Script Date: 2/5/2014 7:51:33 AM ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE PROCEDURE [dbo].[TryCatchTransactions1] (
    @IncrStartDate DATE
    ,@IncrEndDate DATE
    ,@SourceRowCount INT OUTPUT
    ,@TargetRowCount INT OUTPUT
    ,@ErrorNumber INT OUTPUT
    ,@ErrorMessage VARCHAR(4000) OUTPUT
    ,@InsertCase INT --INSERT CASE INPUT
    WITH
    EXEC AS CALLER AS
    BEGIN --Main Begin
    SET NOCOUNT ON
    BEGIN TRY
    DECLARE @SuccessNumber INT = 0
    ,@SuccessMessage VARCHAR(100) = 'SUCCESS'
    ,@BenchMarkLoadFlag CHAR(1)
    ,@BenchmarkFlow INT
    ,@MonthYearStart DATE
    ,@MonthYearEnd DATE
    ,@StartDate DATE
    ,@EndDate DATE
    /* Setting the default values of output parameters to 0.*/
    SET @SourceRowCount = 0
    SET @TargetRowCount = 0
    /*Setting the Start and end date for looping */
    SET @MonthYearStart = @IncrStartDate;
    SET @MonthYearEnd = @IncrEndDate;
    /* Setting the @InsertCase will ensure case wise insertion as this sp will load data in different tables
    @InsertCase =0 means data will be inserted in the target TAB1
    @InsertCase =1 means data will be inserted in the target TAB2
    @InsertCase =2 means data will be inserted in the target TAB3
    @InsertCase =3 means data will be inserted in the target TAB4
    @InsertCase =4 means data will be inserted in the target TAB5
    @InsertCase =5 means data will be inserted in the target TAB6
    IF @InsertCase =0
    WHILE (@MonthYearStart <= @MonthYearEnd)
    BEGIN
    SET @StartDate = @MonthYearStart;
    SET @EndDate = @MonthYearEnd;
    /* Delete from target where date range given from input parameter*/
    DELETE FROM TAB1
    WHERE START_MONTH BETWEEN MONTH(@StartDate) AND MONTH(@EndDate)
    AND START_YEAR BETWEEN year(@StartDate) and YEAR(@EndDate)
    /*Insert data in target-TAB1 */
    BEGIN TRANSACTION
    INSERT INTO TAB1 (COL1,COL2,COL3)
    VALUES ('Z','X','Y')
    SELECT COL1, COL2, COL3
    FROM TAB1
    COMMIT TRANSACTION
    SET @MonthYearStart = DATEADD(MONTH, 1, @MonthYearStart)
    SELECT @TargetRowCount = @TargetRowCount + @@ROWCOUNT;
    END -- End of whileloop
    END TRY
    BEGIN CATCH
    IF @@TRANCOUNT > 0
    ROLLBACK TRANSACTION
    SELECT @ErrorNumber = ERROR_NUMBER() ,@ErrorMessage = ERROR_MESSAGE();
    END CATCH
    PRINT @SUCCESSMESSAGE
    END--End of Main Begin
    GO
    I am just trying to help --danny rosales
    UML, then code

  • Exception handling in client proxy

    Hi
    Can someone please help me with exception handling in ABAP client proxy.

    HI
      Welcome to SDN
    Check this link you wil get information regarding ABAP Proxy  http://help.sap.com/saphelp_nw04/helpdata/en/c9/74246d8ad2447799063d39013e9a11/content.htm

  • Exception handling branch not executing in BPM

    Hi all,
    We have a problem with exception handling in BPMs.
    We have created an exception branch in a block and a transformation step in it.  However, the branch doesn't get executed in case of exceptions.
    Any ideas?  Is this a known problem?
    Many thanks,
    Aldo

    Hi VJ,
    The exception name can only be selected from a list.  There is no chance of mistaking/misspelling in there.
    That is fine as it is.  I am quite sure about it.
    Any other ideas?
    I found SAP note 1039330 but we are already on patch 12 and that correction was released on patch 12.
    Thanks, regards,
    Aldo

  • Exception handling in App. package PeopleCode

    Hi,
    I am accessing a table that is on remote database using DBLink for an update/insert operation using SQLExec. I am trying to implement exception handling to account for the scenario where the remote database is offline so that transaction can continue. However when I use the try-catch block in the app. package PeopleCode somehow the processing does not seem to move forward from the error. The App. pacakage code is triggered by the handler of the service operation. The goal is to simply skip the SQLExec if the table is not available. I am not sure if there is any limitation to the fatal SQL errors which the try-catch can handle.
    As expected i get below error when running select on a view which has remote table in the SQL developer as remote database is down.
    ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
    Has anyone enconutered similar issue with exception handling and best way to move forward in this scenario.
    Any response is much appreciated.
    Thanks,
    Gireesh

    I did this with PL/SQL once. Basically, you want to know if the remote database is available before you execute SQL against it. Here is my function. You can then SQLExec something like select 'x' from dual where my_package.link_available('the_link_name') = 1. If you get a result, then the db link is active. If you don't, it is not active.
    FUNCTION LINK_AVAILABLE(pv_name VARCHAR2)
      RETURN NUMBER AS
            lv_result PLS_INTEGER;
            lv_name   VARCHAR2(128);
        BEGIN
            lv_name := UPPER(pv_name);
            -- parameter check to avoid SQL injection with dynamic SQL below
            -- if the following selects no rows, it will fall through to exception
            -- and return 0;
            SELECT 1
              INTO lv_result
              FROM ALL_DB_LINKS
             WHERE DB_LINK = lv_name;
            -- if we made it this far, then the parameter was a valid db link name
            -- execute SQL to test
            EXECUTE IMMEDIATE 'SELECT 1 FROM PS_INSTALLATION@' || lv_name INTO lv_result;
            RETURN lv_result;
        EXCEPTION
            WHEN OTHERS THEN
                RETURN 0;
      END LINK_AVAILABLE;

  • Understanding Exception handler activity

    All,
    I created 2 view activities in my adfc-config.xml and established a navigation flow between them. The flow happens on click of a button on view1. I have defined an exception handler activity to show unhanded error that may arise. On click of the button in the view1, AM IMPL methods gets called and this is the code
        public void newPage(){
            int k = 5/0; //expecting the error handler activity to get invoked here   
        } When i click on the button, i get the exception however the page associated with exception handler is not getting invoked. I want the exception handler page to be shown for error and not the default popups. How do we do that?
    thnks
    Jdev 11.1.1.5

    No, this is only one possibility...
    checkout Andrejus blog about exception handling http://andrejusb-samples.blogspot.com/2011/03/jdevadf-sample-exception-handler-for_19.html and of cause the docs http://download.oracle.com/docs/cd/E24382_01/web.1112/e16182/taskflows_complex.htm#BACJCBIC
    Timo

  • Bounded Taskflow Exception Handler not working with Page Fragements

    I have one bounded - taskflow task-flow-definition
    <?xml version="1.0" encoding="windows-1252" ?>
    <adfc-config xmlns="http://xmlns.oracle.com/adf/controller" version="1.2">
      <task-flow-definition id="task-flow-definition">
        <default-activity>view1</default-activity>
        <managed-bean>
          <managed-bean-name>backing_main</managed-bean-name>
          <managed-bean-class>view.backing.Main</managed-bean-class>
          <managed-bean-scope>pageFlow</managed-bean-scope>
        </managed-bean>
        <managed-bean>
          <managed-bean-name>backing_view1</managed-bean-name>
          <managed-bean-class>view.backing.View1</managed-bean-class>
          <managed-bean-scope>pageFlow</managed-bean-scope>
        </managed-bean>
        <managed-bean>
          <managed-bean-name>backing_view2</managed-bean-name>
          <managed-bean-class>view.backing.View2</managed-bean-class>
          <managed-bean-scope>pageFlow</managed-bean-scope>
        </managed-bean>
        <exception-handler>view2</exception-handler>
        <view id="view1">
          <page>/view1.jsff</page>
        </view>
        <view id="view2">
          <page>/view2.jsff</page>
        </view>
        <use-page-fragments/>
      </task-flow-definition>
    </adfc-config>view1.jsff contains one command button, which calls one ActionListener
    <?xml version='1.0' encoding='windows-1252'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
              xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
      <af:commandButton text="commandButton 1" actionListener="#{pageFlowScope.backing_view1.callMyFunction}"
                        binding="#{pageFlowScope.backing_view1.commandButton1}"
                        id="commandButton1"/>
      <!--oracle-jdev-comment:auto-binding-backing-bean-name:backing_view1-->
    </jsp:root>view1.java callMyFunction throws an Exception
        public void callMyFunction(ActionEvent event) throws Exception{
            throw new Exception();
        }view2.jsff is an exception handler
    <?xml version='1.0' encoding='windows-1252'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
              xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
      <af:activeOutputText value="Exception Occured"
                           binding="#{pageFlowScope.backing_view2.activeOutputText1}"
                           id="activeOutputText1"
                           inlineStyle="font-size:xx-large; color:red;"/>
      <!--oracle-jdev-comment:auto-binding-backing-bean-name:backing_view2-->
    </jsp:root>above taskflow is dragged-drop as a Region in one file main.jspx
    <?xml version='1.0' encoding='windows-1252'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:h="http://java.sun.com/jsf/html"
              xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
      <jsp:directive.page contentType="text/html;charset=windows-1252"/>
      <f:view>
        <af:document binding="#{pageFlowScope.backing_main.document1}"
                     id="document1">
          <af:form binding="#{pageFlowScope.backing_main.form1}" id="form1">
            <af:region value="#{bindings.taskflowdefinition1.regionModel}"
                       id="taskf1"
                       binding="#{pageFlowScope.backing_main.taskf1}"/>
          </af:form>
        </af:document>
      </f:view>
      <!--oracle-jdev-comment:auto-binding-backing-bean-name:backing_main-->
    </jsp:root>*pressing a commandButton on view1.jsff throws an Exception as expected but does not go to exceptionHandler [view2.jsff]*
    However, this does work with Bounded Task-Flow without page fragments , view1.jspx contains one button, calling one method which throws an Exception,
    view2.jspx is an Exception Handler, and in this case it redirects to the view2.jspx [error page]
    any ideas?
    thanks

    Hi,
    Pretty much. However, you got the event part wrong, which is mostly my fault here. First, let put down some general JSF facts about event handling.
    1. http://java.sun.com/javaee/5/docs/api/javax/faces/component/UIComponent.html#queueEvent(javax.faces.event.FacesEvent)
    2. So, basically, queuing an event on a component means queuing it on its parent until you reach the UIViewRoot that will really actually queue it. That strategy allows iterating components to intercept event queued on their children to record the row index as well so that the data model can be synchronized correctly during the broadcast phase (see http://java.sun.com/javaee/5/docs/api/javax/faces/component/UIData.html#queueEvent(javax.faces.event.FacesEvent) and http://java.sun.com/javaee/5/docs/api/javax/faces/component/UIData.html#broadcast(javax.faces.event.FacesEvent))
    3. Exceptions that aren't handled by the exception handler are thrown during broadcast or various process* methods.
    So, the catch component must leverage these facts to intercept events queued on its children (by overriding queueEvent method) wrapping the original event in a custom on that flag the catch component itself as the source of the event. The result will be that the broadcast method of the catch component will be called to handle the event. The broadcast method must then unwrap the event (to get the original event), gets the original source, then call originalSource.broadcast(originalEvent) within a try-catch block.
    Does it make any more sense put that way? Note that it's an obscure part of JSF so I cannot make it incredibly simple either.
    Regards,
    ~ Simon

  • Exception handling with eInsight

    hi,
    Can any body has any specific document regarding to achieve the effective exception handling with respect to JCAPS eInsight. where we have very limited information in the eInsight user guide.
    Thanks

    We have the same problem, so I could not help you.
    Further we migrate from SRE eInsight and use manuell restart on failure which does not have a corresponding handling in JCAPS.

  • Problems with Custom Exception Handler

    Hi,
    I have defined a custom exception handler for my workflow (WebLogic Platform
    7).
    I have a workflow variable called 'count' , which gets incremented for every
    time an exception occurs.
    The exception handler checks if the count is less than 3(using evaluate
    condition),
    if yes then it executes the action "Exit Execption Handler and retry"
    else
    it executes the action "Exit Execption Handler and continue"
    The Workflow simply hangs, nothing on the console , the worklist from which
    i call it hangs too.
    Has anyone managed to use this kind of exception handling?
    Thanks in advance,
    Asif

    bill0 wrote:
    > Thanks for all the help but still no luck.
    >
    > The directory is d:\wSites\GBMain\html\CFMS> and I am
    mapped to it as x:\CFMS.
    > Most of the cfm files are in CFMS but Application.cfm is
    1 directory up in
    > html. I have tried misscfm.cfm in both html and CFMS but
    had no luck having it
    > find a non existant template referred to in a cfinclude
    or a form's action
    > attribute. The default ColdFusion error handler is what
    shows. The missing
    > template handler box says /misscfm.cfm. Misscfm.cfm is
    text followed by a
    > <cfabort>. We use ColdFusion MX6.1
    >
    > I hope that is enough information to figure what am I
    missing and/or doing
    > wrong.
    >
    >
    Is the 'misscfm.cfm' file somewhere in the
    'd:\wSites\GBMain\html\CFMS\'
    directory. I will presume this is the 'web root' as defined
    in your web
    server (IIS or Apache or built-in or ???). The missing
    template handler
    file needs to be in the ColdFusion root. This is going to be
    a
    directory such as
    '{drive}:\JRun4\servers\{server}\cfusion-ear\cfusion-war\misscfm.cfm'
    for J2EE flavors OR '{drive}:\CFusionMX\wwwroot' for Standard
    I think.
    It has been a very long time since I have dealt with
    Standard.
    This is probably completely different from the above web
    root. That is
    the point I am trying to get across. ColdFusion has TWO roots
    where it
    will look for a CFML file. But the Missing and Sitewide
    templates can
    only be in the ColdFusion root listed above, they will not
    work in the
    web root.
    HTH
    Ian

Maybe you are looking for

  • Question on Shared iCloud account and Find Friends

    My wife and I share a common iCloud account on our iPhones because we want to share calendars, contacts, etc.  I recently upgraded to IOS 8 and it seems to have changed how Find Friends works.  Since Find Friends uses the main iCloud account as ident

  • How do I apply a song to a certain number of slides?

    I am wanting to start a song on a certain slide and let it play to the end. I am able to start it on the slide, but once I click to go to the next slide, the song stops playing. What do I need to do to have it continuous until the end?

  • Why audio sounds different in the Mountain Lion over 10.6

    Hi I just upgraded my system OS 10.6.8 to the latest 10.8.4, and I found that audio on the 10.8.4 sounds different. I did some tests and I can say that audio when listening on the 10.8.4 has less bass content and the hi-mids are more agressive. I run

  • Downloaded apps not appearing in "purchased" list

    I've downloaded few iOS apps from Kuwait App Store but months later I switched the region to USA App Store. I've downloaded the same apps again (from USA App Store this time); however, the apps are now missing in my "purchased" list even though I've

  • Java access to view objects from uix page provider

    I have a java method called from a uix page as follows: <dataScope>    <provider>        <data name="frameworkTableData">           <method class="smart.FrameworkAspects"                   method="getFrameworkStudyAspects"/>        </data>    </provi