At all times derive from the Exception class
When creating customized exception courses, at all times derive from the Exception class, not from the ApplicationException class. One of many causes for that is that an occasion of ApplicationException is thrown solely by the applying and by no means by the runtime. Everytime you throw an occasion of ApplicationException in your code, you merely improve the decision stack with out including a lot worth.
Deal with exceptions on the highest degree
Observe that exceptions are bubbled as much as the upper degree within the methodology name hierarchy, and it’s not a very good apply to deal with exceptions in all of the layers of your software. It’s best to deal with an exception as excessive up within the name hierarchy as you’ll be able to. For instance, you’ll be able to devour an exception within the presentation layer and show applicable messages to the person to speak the precise error that has occurred.
Use predefined exceptions and clear error messages
It’s a good apply to make use of particular exceptions like FileNotFoundException and IOException when writing exception handlers after which a normal catch block on the finish with the Exception class. It will be sure that you get a transparent understanding of the precise error that has occurred. As Microsoft’s documentation states: “The ApplicationException class doesn’t present data as to the reason for exceptions. In most eventualities, cases of this class shouldn’t be thrown. In instances the place this class is instantiated, a human-readable message describing the error ought to be handed to the constructor.”