What is the general rule of thumb when deciding whether to add a throws clause to a method or using a try-catch?
From what I\'ve read mysel
In general, a method should throw an exception to its caller when it can't handle the associated problem locally. E.g. if the method is supposed to read from a file with the given path, IOExceptions can't be handled locally in a sensible way. Same applies for invalid input, adding that my personal choice would be to throw an unchecked exception like IllegalArgumentException in this case.
And it should catch an exception from a called method it if:
DAO uses Hibernate for persisting my entities, so I catch all HibernateExceptions locally and convert them into my own exception types).