When are custom Exception classes most-valuable?
Are there cases when they should or should not be used? What are the benefits?
Related
I wrote a blog entry a while back about when to throw different types of exceptions, and when to create new exception types. It's not that long but is probably too long to paste here so excuse me for just linking. It should cover your question about why different exception types exist, and how to know whether you need to create a custom one.