Datenbestand vom 14. Januar 2019
Tel: 089 / 66060798
Mo - Fr, 9 - 12 Uhr
Fax: 089 / 66060799
aktualisiert am 14. Januar 2019
978-3-8439-0379-0, Reihe Informatik
Exception Handling - A Systematic Log-Based Approach
155 Seiten, Dissertation Technische Universität Kaiserslautern (2011), Softcover, A5
Exception handling is an indispensable means for implementing robust, fault tolerant software systems. Traditional exception handling mechanisms integrated in today's high level programming languages such as C++ and Java are based on simple signal/catch/resume primitives which ignore the consistency of system states. This bears the risk of inconsistent system states induced by the premature termination of code blocks due to exceptions. Therefore, it is up to the program developer to take appropriate actions in the exception handling code for storing and re-establishing consistent system states in the presence of an exception event. Another weakness of traditional exception handling mechanisms is their inability to handle unexpected exceptions in a systematic way due to the lack of appropriate state information passed to the responsible exception handler. Therefore, the only reasonable reaction to unexpected exceptions is often the termination of the application. Finally, traditional exception handling mechanisms are in conflict with the principle of information hiding. The usual assumption that a caller can handle exceptions appropriately propagated from lower level components violates the information hiding principle since it requires internal state information from the callee to be passed and processed by the caller.
We propose a novel exception handling mechanism which overcomes the weaknesses of existing traditional exception handling schemes as summarized above. It is based on a log-driven backward recovery mechanism which automatically stores relevant system state information sufficient to reestablish a consistent system state after an exception was raised. We argue that developing exception handling has to be simplified by partially transferring the responsibility of exception handling from the developer to a platform mechanism. We also present a wrapper-based concept at the level of software components restricting the uncontrolled propagation of unexpected exceptions, i.e. exceptions not anticipated by the program developer. We finally show by the evaluation of our prototype implemented in Java that the proposed approach is feasible, reveals acceptable efficiency and results in much simpler and more robust exception handlers.