Xref: utzoo comp.software-eng:4418 comp.lang.c:33514 Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!ucsd!hub.ucsb.edu!eiffel!bertrand From: bertrand@eiffel.UUCP (Bertrand Meyer) Newsgroups: comp.software-eng,comp.lang.c Subject: Re: error handling techniques? Message-ID: <444@eiffel.UUCP> Date: 7 Nov 90 06:37:03 GMT References: <1990Nov2.205831.23696@elroy.jpl.nasa.gov> <5765@stpstn.UUCP> Organization: Interactive Software Engineering, Santa Barbara CA Lines: 65 From <1990Nov2.205831.23696@elroy.jpl.nasa.gov> by alan@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@eiffel.com