Exception handling design patterns

Abstract Achieving dependable behavior from complex software systems requires that the software logic be able to recover from anomalous conditions or exceptional states. Such conditions and states may arise from embedded defects in the code or from erroneous data provided to the software for processing. One technique for enhancing the ability of software to perform such recovery is the insertion of exception detection and handling features into the logic. Such features may depend on specific exception-handling language facilities or on general-purpose language constructs. This chapter provides an overview of design considerations necessary to implement such recovery, and presents a series of commonly used design patterns that have proved to be successful in enhancing dependable behavior.

[1]  John B. Goodenough,et al.  Exception handling: issues and a proposed notation , 1975, CACM.

[2]  Qian Cui,et al.  Data-Oriented Exception Handling , 1992, IEEE Trans. Software Eng..

[3]  Gary Cornell,et al.  Core Java (2nd ed.) , 1997 .

[4]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[5]  C. Howell,et al.  Exception handling in large Ada systems , 1991, WADAS '91.

[6]  Diane E. Mularz,et al.  Error-Prone Exception Handling in Large Ada Systems , 1993, Ada-Europe.

[7]  Lucy M. Berlin When objects collide experiences with reusing multiple class hierarchies , 1990, OOPSLA/ECOOP '90.

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

[9]  Carl F. Schaefer,et al.  Static analysis of exception handling in Ada , 1993, Softw. Pract. Exp..

[10]  Paul Rook,et al.  Software Reliability Handbook , 1990 .

[11]  Saurabh Sinha,et al.  Analysis of programs with exception-handling constructs , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[12]  Michael R. Lyu Software Fault Tolerance , 1995 .

[13]  Philippe Kruchten Error handling in large, object-based Ada systems , 1990, ALET.

[14]  Bjarne Stroustrup,et al.  The C++ programming language (2nd ed.) , 1991 .