[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 10560] Re: リファクタリ ングを読む会第 5 回議事録



Takagi Kei wrote:
snip
> ⇒finalyの中でrerurnを書くとどうなる?(★宿題)

  高橋(智)です。
  関数を書くときに「returnは一ヶ所だけ」という話から
発展した話題ですが、以下のコードを実行すると、どちらも
100を返すようです。


C:\tmp>javac ReturnTest.java

C:\tmp>java ReturnTest
100
100

----- ReturnTest.java ----------------------------------------
public class ReturnTest {
  public static void main(String[] args) {
    ReturnTest test = new ReturnTest();

    int retval1 = test.foo(false);
    System.out.println(retval1);

    int retval2 = test.foo(true);
    System.out.println(retval2);
  }

  public int foo(boolean error) {
    try {
      // do something...
      if( error )
        throw new RuntimeException("test exception");
      return 99;
    }
    finally {
      return 100;
    }
  }
}
----------------------------------------------------------

-- 
高橋智宏
  Java読書会( http://www.t3-jpn.com/bof/ )
  T3-Japan( http://www.t3-jpn.com/ )