A transactional model for automatic exception handling

被引:13
作者
Cabral, Bruno [1 ]
Marques, Paulo [1 ]
机构
[1] Univ Coimbra, Dept Informat Engn, CISUC, P-3030290 Coimbra, Portugal
关键词
Exception handling model; Software Transactional Memory; Recovery blocks; Fault tolerance; Object-oriented programming languages;
D O I
10.1016/j.cl.2010.09.002
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Software reliability and error handling are concepts that any programmer knows and deals with on a daily basis. Even so, studies suggest that the current approach to exception handling raises fundamental incompatibilities with object-oriented concepts, being a major cause for the lack of quality on error handling code. In this paper, we propose an exception handling model that makes the runtime environment responsible for automatically dealing with abnormal situations. The platform provides a number of benign recovery actions that are able to deal automatically with most common exception types. Whenever an exception is raised, and a benign recovery method can be found, code is re-executed from a clean transactional state. In this approach try blocks not only represent a nesting level where a fault can occur but also a block that can be re-executed transactionally as a clean slate. For validating the approach two case studies were performed. One involved providing automatic exception handling for Glassfish's Java Messaging System implementation and the other for the Hipergate CRM application. Both showed that increased robustness is possible while freeing the programmer from manually writing extensive error-handling code. (C) 2010 Elsevier Ltd. All rights reserved.
引用
收藏
页码:43 / 61
页数:19
相关论文
共 38 条
  • [1] [Anonymous], 1962, LISP 1 5 PROGRAMMERS
  • [2] *AP SOFTW FDN, 2009, TOMC 6
  • [3] *AP SOFTW FDN, 2009, JMETER
  • [4] BUHR P, 2000, IEEE T SOFTWARE ENG, V26
  • [5] CABRAL B, 2007, P 21 EUR C OBJ OR PR, V4609
  • [6] Campbell Roy H., 1986, IEEE T SOFTWARE ENG, VSE-12
  • [7] CAPOZUCCA A, 2009, J SYSTEMS SOFTWARE, V82
  • [8] CAPOZUCCA A, 2006, P ISSRE 2006
  • [9] CHANG H, 2009, P 2009 IEEE 31 INT C
  • [10] CRISTIAN F, 1982, IEEE T COMPUTERS, V31