I think you are asking when you should explicitly enforce try/catch using the throws keyword, or just handle the exceptions within the method itself, right?
private void xmpl() throws NumberFormatException {
Integer.parseInt("apple");
}
private void xmpl() {
try {
Integer.parseInt("apple");
} catch (NumberFormatException e) {
}
}
When you use 'throws', it forces any call to that method to be within a try/catch block, which can be a good thing, especially if your code is going to be used by others. Meaning that if you where write some sort of library that handles something that is very error prone, then using throws and forcing the user to handle exceptions may be a good idea, as opposed to just handling the exceptions within the methods themselves. Make sense? Method's that throw exceptions don't have to be surrounded in a try/catch block, (for example, using 'throw'), but if you add the 'throws' keyword in the method declaration, you are forced to enclose the call in a try/catch block, and if you don't you will receive an error at compile time. Remember that compile time errors are always better than runtime errors

.