title: Scala: what are the guarantees of the catch Throwable?
body: <p>I would like to know the guarantees of the following pattern:</p>
  
  <pre><code>try {
    //business logic here
  } catch {
    case t: Throwable =&gt;
      //try to signal the error
      //shutdown the app
  }
  </code></pre>
  
  <p>I'm interested in catching all unexpected exceptions (that can be thrown by any framework, library, custom code etc...), trying to record the error and shutting down the virtual machine.</p>
  
  <p>In Scala what are the guarantees of the catch Throwable exception? Are there any differences with the java Exception hierarchy to take in consideration?</p>