This is a great article explaining how to create a custom exception that follows the standard

http://dotnetconcepts.wordpress.com/2010/05/28/custom-exceptions-in-c/