[geos-devel] GEOSException is incompatible with std::exception
Mateusz Łoskot
mateusz at loskot.net
Tue Apr 4 12:59:20 EDT 2006
strk at refractions.net wrote:
> On Tue, Apr 04, 2006 at 04:44:31PM +0200, Mateusz Å?oskot wrote:
>
>> Honestly, I don't think al GEOS exceptions can be categorized as
>> runtime_exception, some are logical e.g. IllegalArgumentException.
>> GEOSException is a general geos exception and I think it should be
>> derived directly from std::exception. GEOSException could be
>> defined similarly as those exceptions in <stdexcept> file.
>>
>> What do you think?
>
> That's fine with me. Anyway, I think this was previous layout.
Yes, indeed.
But there were no what() accessor, so that's why the problem occured.
> Maybe the problem was GEOSException didn't define what() as a 'const'
> method (thus NOT overriding the non-const version) ?
Yes, I think so.
I've just tested it again and here is my final proposal:
1. GEOSException derives from std::exception
2. GEOSException has it's own member to store the message,
similarly to standard exception classes derived from std::exception
3. GEOSException overrides virtual member declared in
std::exception::what() to return the message stored in the local buffer
Does it make sense?
Cheers
--
Mateusz Łoskot
http://mateusz.loskot.net
More information about the geos-devel
mailing list