If I need to throw an exception from within my application which of the built-in .NET exception classes can I use? Are they all fair game? When should I derive my own?
I use the ArgumentException (and its “friends”) regularly.
NotSupportedException and NotImplementedException are also common.