Browse Prior Art Database

Re-Engineering Try/Catch Macros to use OS/2 Exceptions Instead of Signals

IP.com Disclosure Number: IPCOM000114681D
Original Publication Date: 1995-Jan-01
Included in the Prior Art Database: 2005-Mar-29
Document File: 2 page(s) / 46K

Publishing Venue

IBM

Related People

Hidalgo, DS: AUTHOR [+3]

Abstract

Disclosed is an invention that provides a method that can be used to properly implement the standard exception and error handling TRY/CATCH macros in the OS/2* Distributed Computing Environment (DCE)** threads package.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 68% of the total text.

Re-Engineering Try/Catch Macros to use OS/2 Exceptions Instead of
Signals

      Disclosed is an invention that provides a method that can be
used to properly implement the standard exception and error handling
TRY/CATCH macros in the OS/2* Distributed Computing Environment
(DCE)** threads package.

      The DCE threads package includes macros that support exception
handling.  These macros (TRY, CATCH, CATCH_ALL, RAISE, RERAISE, and
FINALLY) are implemented for UNIX*** based platforms using signals.
A signal based implementation is not appropriate for OS/2 versions of
the exception macros because:
  1.  It is inefficient.  OS/2 has native exceptions, which each
       compiler maps to a signal, which would then be remapped to a
       threads exception.  Two levels of remapping is wasteful.
  2.  It is not granular.  Most OS/2 compilers map multiple
exceptions
       into a single signal.  This approach loses the detailed
       information that indicates the precise problem that occurred.
  3.  It is compiler-specific.  On OS/2, each compiler has its own
       unique set of signals, and more importantly, constant values
       for each signal.  It is impossible to create a single set of
       exception macros that would support the different signal sets
       for the various OS/2 compilers.

      This invention provides a solution to the above problem by
implementing the DCE exception macros using...