質問です。

public class java {
  public static void main(String[] args) {
    try{
      int suuji = method();
    }
    catch(Exception e){}
    System.out.println(suuji);
  }
  int method() {
    int suuji2 = 777;
    return suuji2;
  }
}

こういうコードを書くと

java.java:4: static でない メソッド method() を static コンテキストから参照することはできません。
          int suuji = method();
                 ^
java.java:7: シンボルを見つけられません。
シンボル: 変数 suuji
場所 : java の クラス
          System.out.println(suuji);
                      ^
と2つエラーが出ます。
前者はmainメソッドをstaticでなくし、
後者は出力をtryの中に入れれば解決しましたが、なぜエラーが出るのでしょうか?