Possible Duplicate:
Should I derive custom exceptions from Exception or ApplicationException in .NET?
I’ve found two controversial thoughts in MSDN for this matter.
If you are designing an application that needs to create its own exceptions, derive from the ApplicationException class.
For most applications, derive custom exceptions from the Exception class.
Additionally when I took some practice test for 70-536 there was similar question and as right answer was marked ApplicationException.
What is the official guideline?
ApplicationExceptionwas the first recommendation, but after a while MS decided that it just increased the inheritance depth without giving any advantage so they changed the recommendation to just useException.You can find some more information (including a quote explaining the rationale) in this blog post: Link