title: Why must only certain Exceptions be declared as thrown in method signature
body: <p>when declaring a methods with "IllegalAccessException" eclipse forces me to 
  declare the method as throwing an exception </p>
  
  <pre><code>public void a()  throws IllegalAccessException {
   if(x == 1){
     throw new IllegalAccessException("TEST);
   }
  }
  </code></pre>
  
  <p>and in method b that uses "IllegalStateException" i dont need to declare the method as throw an exception </p>
  
  <pre><code>public void b()  {
   if(x == 1){
     throw new IllegalStateException("TEST);
   }
  }
  </code></pre>
  
  <p>what is the different between thous exception<br>
  that one forces me tho declare the method that throw an exception
  and the other is not </p>
  
  <p>thank you </p>