title: Correct Exception to throw when a duplicate key insertion is attempted?
body: <p>Repeatedly I see comments about avoiding throwing generic <code>RuntimeException</code> and I am trying to follow that guideline.  </p>
  
  <p>I have a class that aggregates a <code>SortedMap</code> with a property setting to allow or disallow duplicate keys.  I am trying to figure out what Exception I should throw when duplicate keys are disallowed and an attempt is made to add one.  </p>
  
  <p>I checked the Java docs for the <code>Exception</code> class and none of the known direct descendants seemed suitable.  Do I just go ahead and create my own <code>EDuplicateMapKey</code> class for example and throw that?  If so, how do I avoid ending up with a big pile of class files, one for each custom <code>Exception</code> type?  </p>
  
  <p>What is considered "best practice" here?</p>