Recognition and Masking of Non-Atomic Exception Handling: Team Members: D.Abinaya, D.Gowsikhaa, I.Ramya
Recognition and Masking of Non-Atomic Exception Handling: Team Members: D.Abinaya, D.Gowsikhaa, I.Ramya
Team members:
D.Abinaya,
D.Gowsikhaa,
I.Ramya.
Project objective
The main objective of the project is to
detect the various non-atomic
methods in a program and convert
those non-atomic methods into
atomic methods.
Problem statement
Some programming languages, like
C++ and Java, provide exception
handling support. An exception is
thrown, when a semantic constraint is
violated or when some exceptional
error condition occurs. And then there
is a transfer of control to the point,
where exception is caught.
An exception that is not caught in a
method is implicitly propagated to the
calling method. The use of exceptions
is a powerful mechanism that
separates functional code from the
error handling code and allows a
clean path for error propagation.
ABSTRACT
Programming languages such as C++
and Java provide sophisticated exception
handling mechanisms to detect and correct
runtime errors. Still exception handling
code must be programmed with care.
Premature termination of a method due to
an exception might leave an object’s state
inconsistent. The objective of this project is
to develop a software, JOptimizer, which
automatically detects and masks the non-
atomic exception handling situations
encountered during program execution.
To discover failure non-atomic methods,
exceptions are injected at runtime into each method
and the calling object’s state before and after the
occurrence of the exception are compared. Methods
that cause an object to enter an inconsistent state are
classified as failure non-atomic. To transform a failure
non-atomic method into a failure atomic method, a
snapshot of the calling object’s state is taken before
each non-atomic method call. If an exception occurs,
a rollback on that object state is done, before
propagating the exception to the user. Thus by
converting non-atomic methods into atomic methods
robustness in software can be achieved.
Methodology of work
The proposed system intimates the
user about non-atomic methods
present in the user program. It then
transforms the non-atomic methods
in the user program into atomic
methods, on demand. The system
restores object's state back to a
consistent state, in case of Exception,
for non-atomic methods.
System architecture
References
Amanda Cibele Apolinario Rosa and Eliane Martins (1993) ‘Using
a Reflective Architecture to Validate Object - oriented