I'm running some code through FxCop and am currently looking at clearing all of the non-breaking violations.
The code itself has a few instances of try/catch blocks which just catch general exceptions;
try
{
// Some code in here that could throw an exception
}
catch(Exception ex)
{
// Exception Thrown ... sort it out!
}
Now we all know this is is bad practice but I thought I knew how to do it properly - but FxCop has other ideas!
Suppose that the code in the try block could throw an IO Exception - and only an IO exception. There should be nothing wrong with doing this:
try
{
// Code in here that can only throw an IOException
}
catch (System.IO.IOException ioExp)
{
// Handle the IO exception or throw it
}
catch (System.Exception ex)
{
// Catch otherwise unhandled exception
}
But FxCop disagrees with me ... it still flags this as a violation because I'm catching System.Exception
.
Is this really bad practice or should/can I safely ignore this violation?