Changing Java's Semantics for Handling Null Pointer Exceptions
This paper envisions a world where no exceptions are raised; instead, language semantics are changed so that operations are total functions. Either an operation executes normally or tailored recovery code is applied where exceptions would have been raised. As an initial step and evaluation of this idea, this paper proposes to transform programs so that null pointer dereferences are handled automatically without a large runtime overhead. This paper increases robustness by replacing code that raises null pointer exceptions with error-handling code, allowing the program to continue execution.