title: Java Asynchronous Exceptions: Can I catch them?
body: <p>I have been reading the JLS and I encountered the section <a href="http://docs.oracle.com/javase/specs/jls/se7/html/jls-11.html#jls-11.1.3" rel="noreferrer">11.1.3. Asynchronous Exceptions</a> from which I quote:</p>
  
  <blockquote>
    <p>Most exceptions occur synchronously as a result of an action by the
    thread in which they occur, and at a point in the program that is
    specified to possibly result in such an exception. An asynchronous
    exception is, by contrast, an exception that can potentially occur at
    any point in the execution of a program.</p>
  </blockquote>
  
  <p>And</p>
  
  <blockquote>
    <p>Asynchronous exceptions occur only as a result of:</p>
    
    <p>[...]</p>
    
    <ul>
    <li>An internal error or resource limitation in the Java virtual machine    that prevents it from implementing the semantics of the
    Java    programming language. In this case, the asynchronous exception
    that    is thrown is an instance of a subclass of VirtualMachineError.</li>
    </ul>
  </blockquote>
  
  <p>Is it possible to catch such exceptions for logging purposes or notification (because I believe such thing is unrecoverable)? How can I achieve such thing?</p>