Rich Leick was brought into a major insurance company as a consultant to help them with managing defects and bugs in their core underwriting application. One major problem Rich noticed was that support developers had little-to-no information about the problems they were assigned to fixed: the application provided no logging and all of the error messages simply read "An error occurred. Please try again."

After Rich spent a few weeks adding copious amounts of logging, tracing, and error handling code to the system, the developers were thrilled. They finally had some direction to go when they were assigned a bug. Still, there was one thing that struck Rich as rather odd: the database was throwing lots and lots of "divide by zero" errors.

A little bit of investigation led Rich to the core of the problem, the ABORT_PROCEDURE procedure. Rather than throwing and handling exceptions within the procedures, the original developers decided to use this instead ...

  -- Parameters:     NONE                                                                       ==
  -- Purpose:        FORCE END OF STORED PROCEDURE                                              ==
  -- Interval:       Called From Other Programs.                                                ==
  -- Tables:         NONE                                                                       ==
  -- Sub Programs:   NONE                                                                       ==
  -- Author:         S. Nagheenanajar                                                           ==
  -- Create Date:    2002-10-08                                                                 ==
  -- Revisions:                                                                                 ==
  --   Author                    Date       Description                                         ==
  --   ------------------------- ---------- -------------------------------------------------   ==
  --   M. Bolton                 2003-06-09 Changed to DIV0 error instead of overflow error     ==

  --= VARIABLES ==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==
  v_divzero NUMBER;

  --= PROCEDURE BODY =--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==
    v_divzero := 7;
    v_divzero := v_divzero / 0;

  --= PROCEDURE END ==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==--==