error handling techniques?

Bertrand Meyer bertrand at eiffel.UUCP
Wed Nov 7 17:37:03 AEST 1990


>From <1990Nov2.205831.23696 at elroy.jpl.nasa.gov> by alan at cogswell.Jpl.Nasa.Gov
(Alan S. Mazer)
> I'm interested in what approaches people use for error handling, particularly
> in general purpose function libraries and large software systems.  If someone
> can reference a text or article, that would be good.  

	Some of the classic references are the articles by Brian Randell
in the seventies on recovery blocks, continued by several people,
in particular Flaviu Cristian. (Randell is a professor at the University
of Newcastle, and Cristian, who when I last heard was at IBM's Almaden
laboratories, did his PhD with him.) Here are two references among
many (in Refer format):

%A Brian Randell
%T System Structure for Software Fault Tolerance
%J IEEE Transactions on Software Engineering
%V SE-1
%N 2
%D June 1975
%P 220-232

%A Flaviu Cristian
%T On Exceptions, Failures and Errors
%J Technology and Science of Informatics
%V 4
%N 1
%D January 1985
%K TSI

(Cristian also had a paper in IEEE Transactions on SE, but I don't
have the exact reference here. I could find it if needed, though.)
Some of the work around CLU is also interesting, e.g.

%A Barbara A. Liskov
%A Alan Snyder
%T Exception Handling in CLU
%J IEEE Transactions on Software Engineering
%V SE-5
%N 6
%D November 1979
%P 546-558

(I should add that I have strong objections both to the
Randell-Cristian approach and to the CLU exception mechanism which,
however, is certainly less dangerous than Ada's. But all of the above
articles are good reading regardless of whether one agrees with the
stand they take.)

	Let me also, with a total absence of modesty, point at some of
my own work in the context of object-oriented design, in particular
the book ``Object-Oriented Software Construction'' (Prentice-Hall):
Chapter 7, Systematic Approaches to Software Construction (especially
7.10, Coping with Failure), and section 9.3, Dealing with Abnormal
Cases.

	The approach expounded there is based on a theory called Programming
by Contract, which is further developed in a long article with
precisely this title. The article is currently part of the book
``An Eiffel Collection'' published by my company, but will be republished
as a chapter of a Prentice-Hall collective book entitled
``Advances in Object-Oriented Software Engineering'', edited by Dino Mandrioli
and myself. (That book is in press and should be available in a few months.)
-- 
-- Bertrand Meyer
bertrand at eiffel.com



More information about the Comp.lang.c mailing list