title: How can the parent class of RuntimeException (which is a base class for unchecked Exceptions) be Exception (base class for checked exceptions)?
body: <p>Isn't it very confusing that the RuntimeException (which is a base class of all unchecked exception) inherits from Exception class Which is a base class for checked exceptions. </p>
  
  <p><strong>Question- So how does it work?</strong></p>
  
  <p><strong>My Understanding</strong> - The Idea - <code>Exception</code> class will have a method say <code>boolean toCheck()</code> which would <code>return</code> true or false to tell the compiler to check for the checked exceptions or not.</p>
  
  <p>And in the <code>RuntimeException extends Exception</code> , we simply override the <code>boolean toCheck()</code> method to always return <code>false</code>. This will the tell the compiler to not to check for exceptions before hand. </p>
  
  <p><strong>Is it how it works?</strong></p>
  
  <p>Also why didn't the designers make a new class to inherit directly from <code>throwable</code>?</p>