title: why are unchecked exceptions not checked by java compiler?
body: <p>My question is more on design, 
  The java compiler forces us to catch a checked exception (e.g. FileNotFoundException) but does not forces us to catch an unchecked exception (e.g. NullPointerException). I want to understand the reason, why is compiler designed in such a way?.</p>
  
  <p>The explaination <a href="http://docs.oracle.com/javase/tutorial/essential/exceptions/runtime.html" rel="nofollow">Unchecked Exceptions — The Controversy</a> suggest that it is done for improving readability.</p>
  
  <p>Isn't it a big cost to not to catch runtime exceptions?</p>
  
  <p>Edit:
  by cost i mean, getting runtime exceptions in live environment rather than at compile time itself.
  If such exceptions are handled during compilation itself, there is no possibility of a bug leak. The cost of fixing bugs increases with the delay in phase they are detected.</p>