The general rule is: any exception should be caught by the module which is most competent to react adequately. If current method does not know what to do, it should let the exception pass through, until reaching main() or run() methods. Those methods cannot hope there are more competent methods, so they can catch and log or watever.