title: try-catch and final variables
body: <p>I have a very silly question for you :)</p>
  
  <p>For example, I have following code snippet:</p>
  
  <pre><code>class MyClass {
  
      public static void main (String[] args) {
  
          final String status;
  
          try {
              method1();
              method2();
              method3();
              status = "OK";
          } catch (Exception e) {
              status = "BAD"; // &lt;-- why compiler complains about this line??
          }
  
      }
  
      public static void method1() throws Exception {
          // ...
      }
  
      public static void method2() throws Exception {
          // ...
      }
  
      public static void method3() throws Exception {
          // ...
      }
  
  }
  </code></pre>
  
  <p>The question is inside: why compiler complains about this line? </p>
  
  <p>IntelliJ IDEA says, that <code>Variable 'status' might already have been assigned to</code>.</p>
  
  <p>But, as I can see, we don't ever reach line (where we set <code>status = "OK"</code>) in case of exceptional situation. So the <code>status</code> variable will be <code>BAD</code> and everything should be ok. And if we don't have any exception, then we get <code>OK</code>. And we will set this variable only ONCE a time.</p>
  
  <p>Any thoughts about this?</p>
  
  <p>Thanks for your help!  </p>