Cpp Coding Standards/ERR
Topic-Id: ERR
How to distinguish and use exceptions, assertions and other error cases.
Contents
Summary
Assert Assumptions (Assert)
Assert liberally to document internal assumptions and invariants. Don't use assertions for runtime errors. Ensure that assertions don't perform side effects.
Function Safety Guarantees (Safe)
For each function, give the strongest error-safety guarantee that won't penalize callers who don't need it. Always give at least the basic guarantee.
Which Functions Never Fail (NoFail)
Destructors, delete operators and swap functions must never fail. Occurring exceptions have to be catched and handled within the same function.
Throwing and Catching Exceptions (HowThrow)
Throw exceptions by value, catch them by reference.
Avoid Exception Specifications (ExSpec)
Don't write exception specifications on your functions.
Exception: You cannot avoid them when overriding a virtual function that already has one.
Related Rules
- PRINC:ErrHdl - Consistent Error Handling