A Specification Logic for Exceptions and Beyond
Exception handling is an important language feature for building more robust software programs. It is primarily concerned with capturing abnormal events, with the help of catch handlers for supporting recovery actions. In this paper, we advocate for a specification logic that can uniformly handle exceptions, program errors and other kinds of control flows. Our logic treats exceptions as possible outcomes that could be later remedied, while errors are conditions that should be avoided by user programs. This distinction is supported through a uniform mechanism that captures static control flows (such as normal execution) and dynamic control flows (such as exceptions) within a single formalism. Following Stroustrup’s definition [15,9], our verification technique could ensure exception safety in terms of four guarantees of increasing quality, namely no-leak guarantee, basic guarantee, strong guarantee and no-throw guarantee.
Unable to display preview. Download preview PDF.
- 1.Beckert, B., Hähnle, R., Schmitt, P.H. (eds.): Verification of Object-Oriented Software. LNCS, vol. 4334. Springer, Heidelberg (2007)Google Scholar
- 3.David, C., Gherghina, C., Chin, W.N.: Translation and optimization for a core calculus with exceptions. In: ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation. ACM Press, New York (2009)Google Scholar
- 5.Goodenough, J.B.: Structured exception handling. In: POPL 1975: Proceedings of the 2nd ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, pp. 204–224. ACM, New York (1975)Google Scholar
- 8.Leino, R.: Personal Communication (January 2009)Google Scholar
- 9.Li, X., Hoover, H.J., Rudnicki, P.: Towards automatic exception safety verification. In: FM, pp. 396–411 (2006)Google Scholar
- 10.Maxion, R.A., Olszewski, R.T.: Improving software robustness with dependability cases. In: 28th International Symposium on Fault Tolerant Computing, pp. 346–355 (1998)Google Scholar
- 13.Reynolds, J.: Separation Logic: A Logic for Shared Mutable Data Structures. In: IEEE LICS, Copenhagen, Denmark, pp. 55–74 (July 2002)Google Scholar
- 15.Stroustrup, B.: Exception safety: Concepts and techniques. In: Advances in Exception Handling Techniques, pp. 60–76 (2000)Google Scholar