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?