<p>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?</p>

I use the
```
ArgumentException
```
(and its “friends”) regularly.
```
NotSupportedException
```
and
```
NotImplementedException
```
are also common.