title: Exception handling practices top level vs every function
body: <p>I've seen several approaches of exception handling. Two most common patterns I've seen are:</p>
  
  <ul>
  <li>try catch on every function, log the exception and rethrow</li>
  <li>try catch on the top most level (Like main function), log the exception and rethrow</li>
  </ul>
  
  <p>Which is a better practice if there is one? Or what situations would you choose one approach over the another?</p>