Каково общее эмпирическое правило при принятии решения о добавлении в метод предложения throws или использовании try-catch?
 Из того, что я прочитал сам, throws должны использоваться, когда вызывающий объект нарушил свой конец контракта (переданный объект), и try-catch должен использоваться, когда возникает исключение во время операции, выполняемой внутри метод. Это правильно? Если так, что должно быть сделано на стороне вызывающих абонентов?
PS: искал через Google и SO, но хотел бы получить четкий ответ на этот вопрос.