title: Java "blank final field may not have been initialized" Exception thrown in method oddness
body: <p>I have some code like:</p>
  
  <pre><code>final int var1;    
  
  if ( isSomethingTrue ) {
  
     var1 = 123;
  
  } else {
     throwErrorMethod();
  }
  
  int var2 = var1;
  </code></pre>
  
  <p>And throwErrorMethod is defined something like:</p>
  
  <pre><code>private void throwErrorMethod() throws Exception{
  
     throw new Exception();
  
  }
  </code></pre>
  
  <p>And I get a <code>blank final field may not have been initialized</code> compile error for the <code>var2 = var1</code> statement. If I inline the method, compilation is fine!</p>
  
  <ol>
  <li>Doesn't the compiler see the <code>throws Exception</code> on the method called?</li>
  <li>How come an error which has the word <code>may</code> in it stops compilation?!?</li>
  </ol>