diff --git a/error_handling.html b/error_handling.html index 85347cc..86dd97a 100644 --- a/error_handling.html +++ b/error_handling.html @@ -23,7 +23,7 @@ in Generic Components'', originally published in M. Jazayeri, R. Loos, D. Musser (eds.): Generic Programming, Proc. of a - Dagstuhl Seminar, Lecture Notes on Computer Science 1766 + Dagstuhl Seminar, Lecture Notes on Computer Science. Volume. 1766

Guidelines

@@ -63,13 +63,14 @@ catch(...), see below.
  • - Don't embed a std::string object or any other data - member or base class whose copy constructor could throw an exception. - That could lead to termination during stack unwinding. Similarly, - it's a bad idea to use a base or member whose ordinary constructor - might throw, because, though not fatal, you will report a different - exception than intended when that happens in a - throw-expression such as: + Don't embed a std::string object or any other + data member or base class whose copy constructor could throw + an exception. That could lead to directly to std::terminate() + at the throw point. Similarly, it's a bad idea to use a base + or member whose ordinary constructor(s) might throw, because, + though not necessarily fatal to your program, you may report a + different exception than intended from a + throw-expression that includes construction such as:
    @@ -135,7 +136,7 @@ throw some_exception();
         where the problem was detected. That usually means assert() or
         something like it.

    -

    Sometimes it is neccessary to have resilient APIs which can stand up +

    Sometimes it is necessary to have resilient APIs which can stand up to nearly any kind of client abuse, but there is usually a significant cost to this approach. For example, it usually requires that each object used by a client be tracked so that it can be checked for validity. If @@ -200,7 +201,7 @@ extern "C" void (*old_translator)(unsigned, EXCEPTION_POINTERS*)

    Revised - 22 March, 2003 + 25 March, 2003