How to structure code with 2 methods, one after another, which throw the same two exceptions?

Posted by dotnetdev on Stack Overflow See other posts from Stack Overflow or by dotnetdev
Published on 2010-03-26T21:40:48Z Indexed on 2010/03/26 21:43 UTC
Read the original article Hit count: 172

Filed under:

Hi,

I have two methods, one called straight after another, which both throw the exact same 2 exceptions (IF an erroneous condition occurs, not stating that I'm getting exceptions).

For this, should I write seperate try and catch blocks with the one statement in each try block and catch both exceptions (Both of which I can handle as I checked MSDN class library reference and there is something I can do, eg, re-open SqlConnection or run a query and not a stored proc which does not exist). So code like this:

try
{
  obj.Open();
 }

 catch (SqlException)
 {
   // Take action here.
 }


 catch (InvalidOperationException)
 {
   // Take action here.
 }

And likewise for the other method I call straight after. This seems like a very messy way of coding. The other way is to code with the exception variable (that is ommited as I am using AOP to log the exception details, using a class-level attribute). Doing this, this could aid me in finding out which method caused an exception and then taking action accordingly. Is this the best approach or is there another best practise altogether?

I also assume that, as only these two methods are thrown, I do not need to catch Exception as that would be for an exception I cannot handle (causes way out of my control).

Thanks

© Stack Overflow or respective owner

Related posts about c#