← Back to team overview

dolfin team mailing list archive

Re: GenericTensor::down_cast() should throw std::bad_cast instead of invoking dolfin::error

 

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 02.08.2010 10:33, Anders Logg wrote:
> On Sun, Aug 01, 2010 at 06:35:22PM +0100, Garth N. Wells wrote:
>> On Sun, 2010-08-01 at 12:40 +0200, Florian Rathgeber wrote:
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA1
>>>
>>> Hi,
>>>
>>> When using GenericTensor::down_cast() for a tentative down cast it would
>>> be helpful if it would throw std::bad_alloc (as any dynamic_cast would
>>> do)
>>
>> Do you mean std::bad_cast?
>>
>>> instead of invoking dolfin::error. Currently you would have to catch
>>> std::runtime_error and check what() to distinguish a failed cast from
>>> another dolfin::error, which is pretty inconvenient. Is there a specific
>>> reason why it is implemented this way?
>>>
>>
>> Not really.
>>
>> It's not too clear to me what you'd like. Would you prefer that
>> down_cast doesn't throw an error, but leave it up to the programmer to
>> check that a cast was successful, or just that DOLFIN catch a
>> std::bad_cast and print more information before throwing an error?
> 
> I think the best would be if DOLFIN caught the error, then wrote an
> informative message (since it knows exactly what went wrong) and then
> threw bad_cast.

That would be my preferred behavior.

Florian
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.12 (MingW32)

iEYEARECAAYFAkxWobQACgkQ8Z6llsctAxbjqwCdE05pvfdR1tLWnO8Gfi/ITRWs
RUoAnibpEMVg3+2w8TEVTPNe01daUZqI
=3aE+
-----END PGP SIGNATURE-----

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature


References