[Insight-developers] better error message for exceptions
in ThreadedGenerateData()
Gaëtan Lehmann
gaetan.lehmann at jouy.inra.fr
Thu Sep 27 14:08:30 EDT 2007
Le 27 sept. 07 à 16:55, Luis Ibanez a écrit :
>
> Hi Gaetan,
>
> Yes, the patch that you suggested was committed with
> a couple of minor modifications.
>
> If you have a chance, it will be great to test it in
> the context of the original problem that you reported.
I've just done that - works fine :-)
Gaëtan
>
>
>
> Thanks
>
>
> Luis
>
>
> -------------------
> Gaëtan Lehmann wrote:
>> Hi Luis,
>> I was looking at that problem, and noticed that you have commited
>> a fix already.
>> Thank you !
>> Gaëtan
>> Le 13 sept. 07 à 14:41, Luis Ibanez a écrit :
>>>
>>> Hi Gaetan,
>>>
>>>
>>> This patch is certainly a good idea.
>>>
>>>
>>> The current message is pretty much useless, since it doesn't
>>> tell us what the real problem was.
>>>
>>>
>>> I have two concerns with the patch:
>>>
>>>
>>> A) The description of the exception error is being passed to a
>>> "const char * details;" that is declared outside the try{}.
>>>
>>> I'm under the impression that the exception object only
>>> exists inside the scope of the catch block. Therefore by the
>>> time the catch block finishes the exception object will
>>> be destroyed leaving the "details" pointer as a dangling
>>> pointer, that we shouldn't use for throwing an exception
>>> with an extended message.
>>>
>>> We probably should make it a std::string instead...
>>>
>>>
>>>
>>> B) Adding a "catch( std::exception )" after a "catch(...)" will
>>> not have any effect, since the catch(...) will take care of
>>> any exception. We probably should put it before the catch-all
>>> "catch(...)".
>>>
>>>
>>>
>>> Does that make sense ?
>>>
>>>
>>>
>>> One way or the other, I agree that we should fix this,
>>> We have had many frustrating encounters with the same
>>> error message that just tell than an exception happened
>>> but don't give any details of the original problem.
>>>
>>>
>>>
>>> Thanks
>>>
>>>
>>> Luis
>>>
>>>
>>> -----------------------
>>> Gaëtan Lehmann wrote:
>>>
>>>> Hi,
>>>> I'm debuging some threaded code currently, and I found the
>>>> error report really non-informative. Something like
>>>> Progress | 0 | 0.3 | 0.3 | 0.6terminate called after throwing
>>>> an instance of 'itk::ExceptionObject'
>>>> what(): /home/glehmann/src/Insight/Code/Common/
>>>> itkMultiThreader.cxx:405:
>>>> itk::ERROR: MultiThreader(0x8176608): Exception occurred
>>>> during SingleMethodExecute
>>>> I simply have no idea where the problem is, excepted that it
>>>> may be in a threaded method. So I tried to modified the
>>>> MultiTreader code to return more information about what
>>>> happened. The patch is attached. I'm now get something like
>>>> Progress | 0 | 0.3 | 0.3 | 0.6terminate called after throwing
>>>> an instance of 'itk::ExceptionObject'
>>>> what(): /home/glehmann/src/Insight/Code/Common/
>>>> itkMultiThreader.cxx:405:
>>>> itk::ERROR: MultiThreader(0x8176608): Exception occurred
>>>> during SingleMethodExecute
>>>> /home/glehmann/src/contrib-itk/binaryAttributeMorphology/
>>>> itkLabelPerimeterEstimationCalculator.h:83:
>>>> itk::ERROR: LabelPerimeterEstimationCalculator(0x81c6928):
>>>> Unknown label: 0
>>>> Abandon
>>>> Clearly, a better message to search for a bug :-)
>>>> I'm not a thread expert, so maybe there is something wrong with
>>>> that patch - any comment is welcome.
>>>> Gaëtan
>>>> --
>>>> Gaëtan Lehmann
>>>> Biologie du Développement et de la Reproduction
>>>> INRA de Jouy-en-Josas (France)
>>>> tel: +33 1 34 65 29 66 fax: 01 34 65 29 09
>>>> http://voxel.jouy.inra.fr
>>>> -------------------------------------------------------------------
>>>> -- ---
>>>> _______________________________________________
>>>> Insight-developers mailing list
>>>> Insight-developers at itk.org
>>>> http://www.itk.org/mailman/listinfo/insight-developers
>> --
>> Gaëtan Lehmann
>> Biologie du Développement et de la Reproduction
>> INRA de Jouy-en-Josas (France)
>> tel: +33 1 34 65 29 66 fax: 01 34 65 29 09
>> http://voxel.jouy.inra.fr
--
Gaëtan Lehmann
Biologie du Développement et de la Reproduction
INRA de Jouy-en-Josas (France)
tel: +33 1 34 65 29 66 fax: 01 34 65 29 09
http://voxel.jouy.inra.fr
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 186 bytes
Desc: =?ISO-8859-1?Q?Ceci_est_une_signature_=E9lectronique_PGP?=
Url : http://www.itk.org/mailman/private/insight-developers/attachments/20070927/64833715/PGP.pgp
More information about the Insight-developers
mailing list