Krzysztof Cwalina, owner of the Framework Design Guidelines , has written a great post on designing exception hierarchies . He gives a great overview on the different categories of exceptions, which are placed under two main buckets he calls usage and