Overview
Explore the challenges and potential solutions for exception handling in C++ in this keynote address from ACCU 2019. Delve into the root causes of fragmentation within the C++ community regarding error handling and examine proposed solutions aimed at unifying exception usage. Learn about the distinctions between program-recoverable errors, program bugs, and resource limit exceedances, and understand why they should be reported differently. Discover ongoing efforts in C++ standardization to evolve the standard library, including groundwork laid in C++20 for future changes. Gain insights from Herb Sutter, a prominent figure in C++ development, as he discusses zero-overhead exception handling, throw values versus types, and proposed extensions like try expressions. Understand the benefits of these potential changes, including improved convenience, automatic exception propagation, and enhanced code visibility.
Syllabus
Intro
Code review...
Pathology 101
Roadmap
A funny thing happened on the way to breakfast...
Root cause: Today's EH not zero-overhead
Taxonomy
Core issues: Zero-overhead + determinism
Throw values, not types
Core proposal summary
Bugs contracts
Spot the oddities
Key Q: Can I continue running normal code?
Language-independent fact
Proposed extension: try expressions
Simplifications â–º What are the benefits? Convenience as todayl: Automatic exception propagation â–º Correctness (newl Visible still convenient) propagation
Taught by
ACCU Conference