Exception Handling

The rst part of this paper provides rigorous deenitions for several basic concepts underlying the design of dependable programs, such as speciication, program semantics, exception, program correctness, robustness, failure, fault, and error. The second part investigates what it means to handle exceptions in modular programs structured as hierarchies of data abstractions. The problems to be solved at each abstraction level, such as exception detection and propagation, consistent state recovery and masking are examined in detail. Both programmed exception handling and default exception handling (such as embodied for example in recovery blocks or database transactions) are considered. An assessment of the adequacy of backward recovery in providing tolerance of software design faults is made.

[1]  P. M. Melliar-Smith,et al.  Software reliability: The role of programmed exception handling , 1977, Language Design for Reliable Software.

[2]  Flaviu Cristian A Recovery Mechanism for Modular Software , 1979, ICSE.

[3]  Flaviu Cristian Le traitement des exceptions dans les programmes modulaires , 1979 .

[4]  Flaviu Cristian,et al.  A Rigorous Approach to Fault-Tolerant Programming , 1985, IEEE Transactions on Software Engineering.

[5]  Maarten M. Fokkinga,et al.  A proposal for dealing with abnormal termination of programs , 1976 .

[6]  Hermann Kopetz,et al.  Fault tolerance, principles and practice , 1990 .

[7]  Shaula Yemini An axiomatic treatment of exception handling , 1982, POPL '82.

[8]  Mary Shaw,et al.  An introduction to the construction and verification of Alphard programs , 1976, ICSE '76.

[9]  David R. Cheriton,et al.  Making Exceptions Simplify the Rule (and Justify their Handling) , 1986, IFIP Congress.

[10]  Roy H. Campbell,et al.  FAULT TOLERANCE USING COMMUNICATING SEQUENTIAL PROCESSES. , 1984 .

[11]  Ralph-Johan Back Exception Handling with Multi-Exit Statements , 1980, Fachtagung über Programmiersprachen.

[12]  David F. McAllister,et al.  An Experimental Evaluation of Software Redundancy as a Strategy For Improving Reliability , 1991, IEEE Trans. Software Eng..

[13]  Flaviu Cristian,et al.  Exception Handling and Software Fault Tolerance , 1982, IEEE Transactions on Computers.

[14]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[15]  Robert W. Floyd,et al.  Assigning meaning to programs , 1967 .

[16]  Brian A. Wichmann,et al.  Rationale for the design of the Ada programming language , 1979, SIGP.

[17]  K. H. Kim,et al.  Approaches to Mechanization of the Conversation Scheme Based on Monitors , 1982, IEEE Transactions on Software Engineering.

[18]  Brian Randell,et al.  Reliability Issues in Computing System Design , 1978, CSUR.

[19]  P. M. Melliar-Smith,et al.  A program structure for error detection and recovery , 1974, Symposium on Operating Systems.

[20]  Alan Snyder,et al.  Exception Handling in CLU , 1979, IEEE Transactions on Software Engineering.

[21]  David Lorge. Parnas Response to detected errors in well-structured programs , 1972 .

[22]  Mark Edward Staknis A theoretical basis for software fault tolerance , 1987 .

[23]  Richard D. Schlichting,et al.  Failure Handling in Distributed Programming Languages , 1986, Symposium on Reliability in Distributed Software and Database Systems.

[24]  Butler W. Lampson,et al.  On the transfer of control between contexts , 1974, Symposium on Programming.

[25]  Barbara Liskov,et al.  On Linguistic Support for Distributed Programs , 1982, IEEE Transactions on Software Engineering.

[26]  N. S. Barnett,et al.  Private communication , 1969 .

[27]  Brian Randell,et al.  Error recovery in asynchronous systems , 1986, IEEE Transactions on Software Engineering.

[28]  David Lorge Parnas,et al.  A technique for software module specification with examples , 1972, CACM.

[29]  Roy Levin Program structures for exceptional condition handling , 1977 .

[30]  Brian Randell,et al.  System structure for software fault tolerance , 1975, IEEE Transactions on Software Engineering.

[31]  Santosh K. Shrivastava,et al.  Reliable Resource Allocation Betvveen Unreliable Processes , 1978, IEEE Transactions on Software Engineering.

[32]  David C. Luckham,et al.  Ada exception handling: an axiomatic approach , 1980, TOPL.

[33]  Flaviu Cristian,et al.  Systematic Detection of Exception Occurrences , 1981, Sci. Comput. Program..

[34]  Robert S. Swarz,et al.  The theory and practice of reliable system design , 1982 .

[35]  W. A. Wulf,et al.  Reliable hardware/software architecture , 1975, IEEE Transactions on Software Engineering.