Advanced exception handling mechanisms

被引:33
作者
Buhr, PA [1 ]
Mok, WYR [1 ]
机构
[1] Univ Waterloo, Dept Comp Sci, Waterloo, ON N2L 3G1, Canada
关键词
exception handling; robustness; termination; resumption; concurrent; interrupts; object-oriented;
D O I
10.1109/32.877844
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
It is no longer possible to consider exception handling as a secondary issue in language design, or even worse, a mechanism added after the fact via a library approach. Exception handling is a primary feature in language design and must be integrated with other major features, including advanced control flow, objects, coroutines, concurrency, real-time, and polymorphism. Integration is crucial as there are both obvious and subtle interactions between exception handling and other language features. Unfortunately, many exception handling mechanisms work only with a subset of the features and in the sequential domain. A framework for a comprehensive, easy to use, and extensible exception handling mechanism is presented for a concurrent, object-oriented environment. The environment includes language constructs with separate execution stacks, e.g., coroutines and tasks, so the exception environment is significantly more complex than the normal single-stack situation. The pros and cons of various exception features are examined, along with feature interaction with other language mechanisms. Both exception termination and resumption models are examined in this environment, and previous criticisms of the resumption model, a feature commonly missing in modern languages, are addressed.
引用
收藏
页码:820 / 836
页数:17
相关论文
共 32 条
[1]   SYNCHRONOUS AND ASYNCHRONOUS HANDLING OF ABNORMAL EVENTS IN THE MU-SYSTEM [J].
BUHR, PA ;
MACDONALD, HI ;
ZARNKE, CR .
SOFTWARE-PRACTICE & EXPERIENCE, 1992, 22 (09) :735-776
[2]  
BUHR PA, 1995, COMMUN ACM, V38, P117
[3]   MU-C++ - CONCURRENCY IN THE OBJECT-ORIENTED LANGUAGE C++ [J].
BUHR, PA ;
DITCHFIELD, G ;
STROOBOSSCHER, RA ;
YOUNGER, BM ;
ZARNKE, CR .
SOFTWARE-PRACTICE & EXPERIENCE, 1992, 22 (02) :137-172
[4]  
BUHR PA, 1999, MUCPLUSPLUS ANNOTATE
[5]  
CARDELLI L, 1988, 31 SYST RES CTR
[6]  
CARGILL TA, 1990, P ADV COMP SYST ASS, P315
[7]  
DREW SJ, 1994, COMPUTER LANGUAGES, V20
[8]   EXCEPTIONAL-C OR C WITH EXCEPTIONS [J].
GEHANI, NH .
SOFTWARE-PRACTICE & EXPERIENCE, 1992, 22 (10) :827-848
[9]   EXCEPTION HANDLING - ISSUES AND A PROPOSED NOTATION [J].
GOODENOUGH, JB .
COMMUNICATIONS OF THE ACM, 1975, 18 (12) :683-696
[10]  
GOSLING J, 1996, JAVA LANGUAGE SPECIF