This paper appears in: Software Engineering, IEEE Transactions on
Publication Date: Sep 2000
Volume: 26,
Issue: 9
On page(s): 820-836
ISSN: 0098-5589
References Cited: 32
CODEN: IESEDJ
INSPEC Accession Number: 6738649
Digital Object Identifier: 10.1109/32.877844
Current Version Published: 2002-08-06
Abstract
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
Index
Terms
Available to subscribers and IEEE members.
References
Available to subscribers and IEEE members.
Citing Documents
Available to subscribers and IEEE members.