      <li><b>Derive your exception class
      from <code>std::exception</code></b>. Except in *very* rare
      circumstances where you can't afford the cost of a virtual
      table,
      <code>std::exception</code> makes a reasonable exception base class,
      and when used universally, allows programmers to catch "everything"
      without resorting to <code>catch(...)</code>. For more about
      <code>catch(...)</code>, see below.  

      <li><b>Use <i>virtual</i> inheritance.</b> This insight is d