A comparative study of exception handling mechanisms for building dependable object-oriented software

被引:81
作者
Garcia, AF
Rubira, CMF
Romanovsky, A [1 ]
Xu, J
机构
[1] Newcastle Univ, Dept Comp Sci, Newcastle Upon Tyne NE1 7RU, Tyne & Wear, England
[2] Univ Estadual Campinas, Inst Comp, BR-13081970 Campinas, SP, Brazil
[3] Univ Durham, Dept Comp Sci, Durham DH1 3HP, England
基金
英国工程与自然科学研究理事会;
关键词
exception handling; exception mechanisms; object-oriented languages; object-oriented programming; software fault tolerance;
D O I
10.1016/S0164-1212(01)00062-0
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Modern object-oriented systems have to cope with an increasing number of exceptional conditions and incorporate fault tolerance into systems' activities in order to meet dependability-related requirements. An exception handling mechanism is one of the most important schemes for detecting and recovering errors, and for structuring fault-tolerant activities in a system. The mechanisms that were ill designed can make an application unreliable and difficult to understand, maintain and reuse in the presence of faults. This paper surveys various exception mechanisms implemented in different object-oriented languages, evaluates and compares different designs. A taxonomy is developed to help address 10 basic technical aspects for a given exception handling proposal, including exception representation, external exceptions in signatures, separation between internal and external exceptions, attachment of handlers, handier binding, propagation of exceptions, continuation of the control flow, clean-up actions, reliability checks, and concurrent exception handling. Practical issues and difficulties are summarized., major trends in actual languages are identified, and directions for future work are suggested. (C) 2001 Elsevier Science Inc. All rights reserved.
引用
收藏
页码:197 / 222
页数:26
相关论文
共 63 条
[1]  
Arnold K., 1998, JAVA PROGRAMMING LAN
[2]   THE GUIDE LANGUAGE [J].
BALTER, R ;
LACOURTE, S ;
RIVEILL, M .
COMPUTER JOURNAL, 1994, 37 (06) :519-530
[3]  
Bass L., 2012, Software Architecture in Practice, V3rd ed.
[4]  
Burns A., 1996, Real-time Systems and Their Programming Languages
[5]  
BUSCHMANN F, 1996, SYSTEM PATTERNS PATT
[6]   ERROR RECOVERY IN ASYNCHRONOUS SYSTEMS [J].
CAMPBELL, RH ;
RANDELL, B .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1986, 12 (08) :811-826
[7]  
CRISTIAN F, 1995, SOFTWARE FAULT TOLER, P81
[8]  
CRISTIAN F, 1989, DEPENDABILITY RESILI, P68
[9]   DATA-ORIENTED EXCEPTION HANDLING [J].
CUI, Q ;
GANNON, J .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1992, 18 (05) :393-401
[10]  
DELEMOS R, 1999, P 2 IEEE INT S OBJ O