Is this a bad practice to catch a non-specific exception such as System.Exception? Why?

The mantra is:

  • You should only catch exceptions if
    you can properly handle them

Thus:

  • You should not catch general
    exceptions.

In your case, yes, you should just catch those exceptions and do something helpful (probably not just eat them–you could throw after you log them).

Your coder is using throw (not throw ex) which is good.

This is how you can catch multiple, specific exceptions:

try
{
    // Call to a WebService
}
catch (SoapException ex)
{
    // Log Error and eat it
}
catch (HttpException ex)
{
    // Log Error and eat it
}
catch (WebException ex)
{
    // Log Error and eat it
}

This is pretty much equivalent to what your code does. Your dev probably did it that way to avoid duplicating the “log error and eat it” blocks.

Leave a Comment