On Sat, Sep 17, 2005 at 01:49:45PM -0400, pps wrote:
> The largest set of non-optional exceptions are those from the
> Standard C++ Library. For instance, if your code said "row" on a row
> containing only 5 fields, the std::vector underlying the row object will
> throw an exception. (It will, that is, if it conforms to the standard.)
> You might consider wrapping your program's main loop in a try block
> catching std::exceptions, just in case you trigger one of these exceptions.
> And this isn't true! operator doesn't have to check the size (if it
> conforms to the standard). Hopefully the code in the library doesn't
> rely on that. (method .at() exist for size checking)
> please verify and update the docs in order not to confuse people
The docs are correct, although misleading without a knowledge of the code.
mysql++'s row object calls std::vector's at() from inside its own
operator, so the standard library will indeed throw an execption.
Only row::raw_data() uses std::vector::operator.