<p>Are there any good resources for planning how exceptions will be used from an architecture perspective?  (Or provide your suggestions directly here.)  In projects on which I have worked I find that a few common Exceptions are used over and over again and tend to lose their meaning.
From: <a href="http://jamesjava.blogspot.com/2007/10/exception-plan.html" rel="noreferrer">http://jamesjava.blogspot.com/2007/10/exception-plan.html</a></p>

"Effective Java," 2nd. ed. Bloch
, has some good advice in chapter 9.
"Hardcore Java," Simmons
, has some good advice in chapter 5.
I'll also shamelessly mention that I've written
a small tool
to manage Java exception source code. Exception code is often very redundant, all that you usually care about is the type. My tool accepts a configuration file that names exception types, then generates code for those exceptions.