Why is catch (Exception) almost always a bad idea?
Well, if at that point you know that an error has happened, then why not write the proper code to handle that error instead of passing a new Exception object to the catch block? Throwing your own exceptions verifies some design flaws in the project.