List:MySQL++« Previous MessageNext Message »
From:Chris Frey Date:September 17 2005 6:36pm
Subject:Re: What's that error in tutorial?!?
View as plain text  
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[21]" 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[].

- Chris

Thread
What's that error in tutorial?!?Unknown Sender17 Sep
  • Re: What's that error in tutorial?!?Chris Frey17 Sep
    • Re: [OBORONA-SPAM] Re: What's that error in tutorial?!?Unknown Sender18 Sep
      • Re: [OBORONA-SPAM] Re: What's that error in tutorial?!?Chris Frey18 Sep
        • Re: What's that error in tutorial?!?Warren Young19 Sep