Home All Groups Group Topic Archive Search About

try catch (re)throw problem...

Author
12 Apr 2007 7:27 AM
Lloyd Dupont
I have an object where I do 'special' cleanup in case of exception
my code is somewhat like that:

void Method()
{
    try
    {
        Something();
    }
    catch
    {
        SpecialCleanup();
        throw;
    }
    finally
    {
        NormalCleanUp();
    }
}

my problem is that when an exception is thrown VS break into the catch
clause and I have no idea what causes the exception.

I also tried
catch(Exception ex)
{
    SpecialCleanup();
    throw ex;
}

but the ex.StackTrace is reinitialized and I have no idea of the problem!
any tips on how to to be able to debug that?

for now I wrote:
#if !DEBUG
    catch
    {
        SpecialCleanup();
        throw;
    }
#endif

but I would like to catch meaningful stack trace at runtime as well....

Author
12 Apr 2007 7:32 AM
Marc Gravell
have you tried catch(Exception ex) and then just "throw" (no ex)?
Author
12 Apr 2007 2:07 PM
Lloyd Dupont
No, I haven't!
I'll try that tomorrow, thanks!

Show quote
"Marc Gravell" <marc.grav***@gmail.com> wrote in message
news:u4ouzSNfHHA.1216@TK2MSFTNGP03.phx.gbl...
> have you tried catch(Exception ex) and then just "throw" (no ex)?
>

AddThis Social Bookmark Button