Except for exception handling …

Exception handling in Ada has a number of well-known problems. It allows for the propagation of unhandled and anonymous exceptions, it is error-prone and it is inappropriate for some language features such as tasking and tagged types. Ada programs with exceptions can be difficult to understand, develop, modify and analyse, and the exception handling features can be misused in a number of ways.In this paper we introduce the requirements for good exception handling features. We classify the problems with Ada exception handling into two subsets: serious conceptual problems that require an improvement of the language features, and problems attributable to the misuse of the existing features. Problems in the second category can be solved by improving programmers' understanding of the features and ways of using them.

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

[2]  Robert G. Pettit,et al.  Ada 95, Quality and Style: Guidelines for Professional Programmers , 1998 .

[3]  John Barnes,et al.  High Integrity Ada: The Spark Approach , 1997 .

[4]  John D. Litke A systematic approach for implementing fault tolerant software designs in Ada , 1990, TRI-Ada '90.

[5]  Cecília M. F. Rubira,et al.  An exception handling software architecture for developing fault-tolerant software , 2000, Proceedings. Fifth IEEE International Symposium on High Assurance Systems Engineering (HASE 2000).

[6]  B. A. Wichmann High Integrity Ada , 1997, SAFECOMP.

[7]  Jie Xu,et al.  Coordinated exception handling in distributed object systems: from model to system implementation , 1998, Proceedings. 18th International Conference on Distributed Computing Systems (Cat. No.98CB36183).

[8]  Mike Hill,et al.  Safety analysis of Hawk In Flight monitor , 1999, ACM SIGSOFT Softw. Eng. Notes.

[9]  C. A. Koeritz,et al.  Anomalies Encountered in Ada Exception Handling , 1993 .

[10]  William Bail Exception handling design patterns , 1999, Adv. Comput..

[11]  Bo Frisberg Ada in the JAS 39 Gripen Flight Control System , 1998, Ada-Europe.

[12]  Michel Gauthier Exception Handling in Ada-94: Initial Users' Requests and Final Features , 1995, ALET.

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

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

[15]  Alan Burns,et al.  Implementing Atomic Actions in Ada 95 , 1997, IEEE Trans. Software Eng..

[16]  Alan Burns,et al.  Worst-case timing analysis of exception handling in Ada , 1993 .

[17]  David C. Luckham,et al.  An Overview of Anna, a Specification Language for Ada , 1985, IEEE Software.

[18]  Peter T. Brennan Observations on program-wide Ada exception propagation , 1993, TRI-Ada '93.

[19]  Flaviu Cristian,et al.  Exception Handling and Tolerance of Software Faults , 1995 .

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

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

[22]  B. A. Wichmann,et al.  Guidance for the use of the Ada programming language in high integrity systems , 1998, ALET.

[23]  Jörg Kienzle,et al.  Action-Oriented Exception Handling in Cooperative and Competitive Concurrent Object-Oriented Systems , 2000, Advances in Exception Handling Techniques.

[24]  Jörg Kienzle,et al.  Transaction Support for Ada , 2001, Ada-Europe.

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

[26]  Alexander Romanovsky An exception handling framework for N-version programming in object-oriented systems , 2000, Proceedings Third IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2000) (Cat. No. PR00607).