Throw in Catch - how can I tell

  • Thread starter Thread starter Elmo Watson
  • Start date Start date
E

Elmo Watson

I've got one main method, with a Try Catch block. In that, I catch the error
and put it on a label.

However, inside the Try portion, I also run another method. I have a
Try/Catch block there, also, except I just have 'Throw' in the Catch
portion.

How can I send something from this 'internal' method, to the 'outer' method,
so I can see where the actual failure is coming from?
 
You can remove the try/catch block from the "inside" method altogether
and have the "outside" catch actually catch it.

If you want to keep the try/catch inside, you can have something like:

catch (Exception ex)
{
throw ex;
}

instead of just "throw" and send the exception "up", to be catched by
the catch block there.

Elmo Watson escreveu:
 
What's the difference between 'throw' and 'throw ex'?

With the 'Throw', it does get sent up to the main method - but there is
nothing in the error message, that distinctly identifies it as being from
the 'inner' method -
What I'd like to know is how to Add something to the error message, so when
the error happens, it's easily identified as being from the 'inner' method.
 
You can either look up in the "upper" catch's exceptions and read the
name of the method where the exception was thrown to identify it
(TargetSite.Name, i think) or concatenate something to the exception
string in the "inside" catch.

maybe somethign like:

catch (Exception ex)
{
throw new Exception("Inner:" + ex);
}

?
I'm not sure if this is what you want...

happy new year :)
 
If you are having this much problems separating the reporting of the error,
maybe you should separate the two pieces of code into their own try/catch
blocks. It doesn't hurt performance but actually improves your reporting
scenario.

--
--
Regards,
Alvin Bruney [MVP ASP.NET]

[Shameless Author plug]
The O.W.C. Black Book, 2nd Edition
Exclusively on www.lulu.com/owc $19.99
 
Back
Top