C++ 11 – Exception safe guidline from Jon Kalb

  • Throw by value. Catch by reference
  • No dynamic exception specifications. Use noexcept.
  • Destructors that throw are evil.
  • Use RAII. (Every responsibility is an object. One per.)
  • All cleanup code called from a destructor
  • Support swapperator (With No-Throw Guarantee)
  • Draw “Critical Lines” for the Strong Guarantee
  • Know where to catch (Switch/Strategy/Some Success)
  • Prefer exceptions to error codes.

Where we should use “try, catch”

• Anywhere that we support the No-Throw Guarantee
• Destructors & Cleanup
• Swapperator & Moves
• OS Callbacks
• UI Reporting
• Converting to other exception types
• Threads

And extra places
•Some Success

This entry was posted in C++, Programming and tagged . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s