comp.lang.ada
 help / color / mirror / Atom feed
From: Richard D Riehle <laoXhai@ix.netcom.com>
Subject: Re: Help Me Please :)
Date: 2000/03/04
Date: 2000-03-04T18:51:39+00:00	[thread overview]
Message-ID: <89rlvr$gn9$1@nntp3.atl.mindspring.net> (raw)
In-Reply-To: lJSv4.1648$im1.34999@news.pacbell.net

In article <lJSv4.1648$im1.34999@news.pacbell.net>,
	tmoran@bix.com wrote:

>>For example, I think it would be
>>very nice to get the information that a certain Program_Error
>>exception was caused by a failed Accessibility_Check.
>>
>>Are other compilers different in this regard?
>  Yes.  Compiler differ a lot in what you get from
>Ada.Exceptions.Exception_Information.

It has often been noted, by those in the embedded software community, that
the features of Ada.Exceptions are not very useful.  "Who wants to be passing
all those strings around all the time?"   In other environments, especially
command and control systems, this package is turning out to be useful.  

I have taken to describing the exception handling event in terms of electrical
design.   We can overload a circuit and burn down the house.  We can install
a fuse and prevent the overload from doing its damage.  We can design the
exception handler as a software circuit-breaker that detects the problem,
corrects it, resets itself, and continues on with normal processing.

The non-stop characteristics of a command and control system dictate that the
exception handling often be designed as a software circuit-breaker rather than
a fuse.  We see this in many software designs, regardless of language.  The
problem with Ada is its designation of exceptions as something slightly apart
from a typical data type.  


In some languages, exceptions are first class objects.  Ada exceptions are
not first class objects for very good reasons.  However, it is sometimes useful
to promote them to first class objects and benefit from whatever information 
one can get when the software circuit-breaker is triggered.  

One way to promote an Ada exception to a first class object is to declare it as
an Ada.Exceptions.Exception_Occurrence.  A compiler, such as that from Aonix or
RR Software, that returns detailed information in a call to the function,
Ada.Exceptions.Exception_Information, permits the developer to design a logging
module for later review of software circuit-breaker events.  In fact, the package
is designed to permit an access to an exception occurrence, thereby implying some
capabilities one could find very useful in a CCC3I/CCC4I environment.  

I have decided to include an entire chapter on this topic in the book I have been
writing about Object Technology in Ada.  It is taking longer to finish this book
than I expected because I keep coming up with ideas.  I guess we call this "feature
creep" in software development.  As soon as some publisher says they want to take
it "as is" I'll stop and turn it over to them as a first edition.  Meanwhile, working
on it keeps me out of trouble.  

Richard Riehle




  reply	other threads:[~2000-03-04  0:00 UTC|newest]

Thread overview: 54+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-02-29  0:00 Help Me Please :) Will Mann
2000-03-01  0:00 ` Robert Dewar
2000-03-03  0:00   ` Florian Weimer
2000-03-03  0:00     ` tmoran
2000-03-04  0:00       ` Richard D Riehle [this message]
2000-03-05  0:00         ` Steve Arnold
2000-03-17  0:00         ` Robert A Duff
2000-03-18  0:00           ` James S. Rogers
2000-03-19  0:00             ` Robert A Duff
2000-03-20  0:00               ` Brian Rogoff
2000-03-20  0:00                 ` Tucker Taft
2000-03-18  0:00           ` Richard D Riehle
2000-03-20  0:00           ` Florian Weimer
2000-03-22  0:00           ` Mats Weber
2000-03-27  0:00             ` Robert A Duff
2000-03-27  0:00               ` Hyman Rosen
2000-03-28  0:00               ` reason67
2000-03-28  0:00                 ` Robert Dewar
2000-03-29  0:00                   ` Simon Wright
2000-03-29  0:00                   ` reason67
2000-04-06  0:00                   ` Simon Pilgrim
2000-04-07  0:00                     ` Robert Dewar
2000-04-10  0:00                       ` r_c_chapman
2000-03-28  0:00               ` Robert Dewar
2000-03-30  0:00                 ` Mats Weber
2000-04-06  0:00                   ` Exceptions (was: " Wes Groleau
2000-04-07  0:00                     ` Mats Weber
2000-03-29  0:00               ` Richard D Riehle
2000-03-29  0:00                 ` Robert Dewar
2000-03-31  0:00                   ` Richard D Riehle
2000-03-31  0:00                     ` Jean-Pierre Rosen
2000-03-31  0:00                       ` Pascal Obry
2000-03-30  0:00                 ` Mats Weber
2000-03-31  0:00                   ` Richard D Riehle
2000-04-06  0:00                 ` Wes Groleau
2000-03-30  0:00               ` Mats Weber
2000-03-30  0:00               ` Tucker Taft
     [not found]     ` <2000Mar3.183321.69279@ludens>
2000-03-03  0:00       ` Larry Kilgallen
2000-03-04  0:00       ` Robert Dewar
     [not found] <df481109.0106140310.5d923746@posting.google.com>
     [not found] ` <9gb1uu$87u7o$1@ID-52877.news.dfncis.de>
2001-06-19  2:59   ` help me please! Ken Garlington
2001-06-16 10:20     ` C.D.Damron
2001-06-20  6:06     ` John Keeney
  -- strict thread matches above, loose matches on Subject: below --
2000-02-29  0:00 Help Me Please :) Will Mann
2000-02-29  0:00 ` Stanley R. Allen
2000-02-29  0:00   ` Al Johnston
2000-03-01  0:00     ` Robert Dewar
2000-03-01  0:00     ` tmoran
2000-03-01  0:00       ` Al Johnston
2000-03-02  0:00       ` Aidan Skinner
2000-03-01  0:00     ` Stanley R. Allen
2000-03-01  0:00     ` Robert Dewar
2000-03-01  0:00       ` Al Johnston
2000-03-01  0:00 ` tmoran
2000-03-01  0:00 ` James Bean
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox