Save Big on Coursera Plus. 7,000+ courses at $160 off. Limited Time Only!
Explore the evolution of error handling in C++ programming in this comprehensive conference talk. Delve into various approaches to expressing, propagating, and handling error conditions in code, examining their trade-offs and effectiveness. Learn about the adoption of exceptions in C++ and the standard library, while understanding why many developers choose to ban them in their codebases. Investigate the growing interest in Algebraic Data Types (ADTs) like `std::optional` and the proposed `std::expected` for error handling. Analyze existing error-handling methods and their comparative strengths, leading up to the discussion of the new proposal p0709r1, "Zero-overhead deterministic exceptions." Examine this proposal in depth, along with supporting proposals like p1028 (std::error) and p1029 ([[move relocates]]). Draw insights from similar mechanisms in other languages, particularly Swift, to understand practical implications. Gain a solid understanding of when to use different error handling strategies, what developments are on the horizon, and how to write code that will be compatible with future error handling paradigms in C++.