| Do not throw exceptions from within destructors. |
| Only throw objects of class type. |
| Catch exceptions by reference. |
| Only use the C++ exception handling mechanism to handle error conditions. |
| Each application must have some scheme for ensuring that all orphaned resources are properly released when an exception is thrown. |
| Each application that acquires resources that are not automatically freed at program termination must use some mechanism to ensure that acquired resources are freed if the program unexpectedly terminates. |