The nature of Exceptions
there are three different situations that cause exceptions to be thrown:
1. Exceptions due to programming errors
2. Exceptions due to client code errors
3. Exceptions due to the resource failures
Types of Exceptions in java
1. Checked Exceptions
2. Unchecked Exceptions
Best Practices for Designing the API
1. When deciding on checked exceptions vs.unchecked excpetions,ask yourself
"what action can client code take when excpetion occurs?"
2. Preserve encapsulation
3. Try not to create new custom exception if they don't have useful information
for client code.
4. Document exceptions
Best practices for using exceptions
1. Always clean up after yourself
2. never use excpetions for flow control
3. Do not suppress or ignore exceptions
4. Do not catch top-level exceptions.
5. Log exceptiions just once
you can refer to the original article of best practices of exception handling at fellowing link
http://onjava.com/pub/a/onjava/2003/11/19/exceptions.html