家族ToDo(仮)開発日誌

やりたいことや行きたい場所を家族で共有するためのAndoridアプリの開発日誌(兼Android開発学習メモ)です。

try-with-resourceとは

Java SE 7知らないのでちょっと調べたら、処理の終わりで確実にリソースをクローズしたい場合に使う模様。C#のusingみたいなもんか。

よくDB接続処理なんかで↓みたいにして各種リソースを確実に閉じていたけど、

Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
  conn = getConnection();
  stmt = conn.createStatement();
  rs = stmt.executeQuery(“SELECT * FROM hoge”);
 // hogehoge
} catch (Exception ex) {
  ex.printStackTrace();
} finally {
  try { rs.close(); } catch (Exception ex) {}
  try { stmt.close(); } catch (Exception ex) {}
  try { conn.close(); } catch (Exception ex) {}
}

これが↓のように簡単に書けるとのこと。finally句のネストしたtry-catchが省略できて大変いい感じですね。

try (
  Connection conn = this.getConnection();
  Statement stmt = conn.createStatement();
  ResultSet rs = stmt.executeQuery(“SELECT * FROM hoge”); 
) {
  // hogehoge
} catch (SQLException ex) {
  ex.printStackTrace();
}

まあ、今回の開発では使えないんですけどね。