読者です 読者をやめる 読者になる 読者になる
無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

Runtime#addShutdownHook()

System.exit()が好きなコードですが、案の定、必要な後始末をせずにSystem.exit()してるじゃないか!と思ったら、ShutdownHookが仕込まれていた。

Runtime.getRuntime().addShutdownHook( new Thread() {
    public void run() {
        System.out.println("x");
    }
});

try {
    System.out.println("a");
    System.exit( 0 );
    System.out.println("b");
} finally {
    System.out.println("c");
}

実行結果です。"x"がちゃんと出力されています。

a
x

コードでは、↑の「System.out.println("x");」に該当する部分で後始末が行なわれていました。途中で実行時例外になった場合もちゃんと呼び出されるみたいだし、一応大丈夫なのか・・。だが、むずい。