Stayin' alert: moulding failure and exceptions to your needs
Citation:
Anya Helene Bagge, Valentin David, Magne Haveraaen and Karl Trygve Kalleberg. Stayin' alert: moulding failure and exceptions to your needs. In Proceedings of the Fifth international conference on Generative Programming and Component Engineering (GPCE'06), pages 265–274. ACM, 2006.Conference:
Fifth international conference on Generative Programming and Component Engineering (GPCE'06), Portland, Oregon, 2006, proceedings pp.265–274Paper Links:
[doi] [pdf]Abstract:
Dealing with failure and exceptional situations is an important but tricky part of programming, especially when reusing existing components. Traditionally, it has been up to the designer of a library to decide whether to use a language's exception mechanism, return values, or other ways to indicate exceptional circumstances. The library user has been bound by this choice, even though it may be inconvenient for a particular use. Furthermore, normal program code is often cluttered with code dealing with exceptional circumstances.This paper introduces an alert concept which gives a uniform interface to all failure mechanisms. It separates the handling of an exceptional situation from reporting it, and allows for retro-fitting this for existing libraries. For instance, we may easily declare the error codes of the POSIX C library for file handling, and then use the library functions as if C had been extended with an exception mechanism for these functions -- a moulding of failure handling to the user's needs, independently of the library designer's choices.
BibTeX:
@InProceedings{bagge-david-haveraaen-kalleberg-gpce06-alerts, title = {Stayin' alert: moulding failure and exceptions to your needs}, author = {Anya Helene Bagge and Valentin David and Magne Haveraaen and Karl Trygve Kalleberg}, year = {2006}, booktitle = {Proceedings of the Fifth international conference on Generative Programming and Component Engineering (GPCE'06)}, pages = {265--274}, publisher = {ACM}, address = {New York, NY, USA}, doi = {10.1145/1173706.1173747}, isbn = {1-59593-237-2}, location = {Portland, Oregon}, url = {http://www.ii.uib.no/~anya/papers/bagge-david-haveraaen-kalleberg-gpce06-alerts.html}, pdf = {http://www.ii.uib.no/~anya/papers/bagge-david-haveraaen-kalleberg-gpce06-alerts.pdf}, }