Throwable を catch して null チェックを省く

まつもとさんのまつもとさんの紹介しているコードがあれすぎる、というのは同意なんですけど。

String readData(File file, String default_value) {
  BufferedReader in = null;
  try {
    in = new BufferedReader(new FileReader(file));
    return in.readLine();
  }catch(IOException e) {
    return default_value;
  }finally{
    try{ in.close();}catch(Throwable _){}
  }
}

最後の

try { in.close(); } catch (Throable _) {}

は通常なら

if (in != null) {
    try { in.close(); } catch (IOException e) { }
}

と書くところを null チェックを省いていて一瞬おぉ、と思ったんだけど、NullPointerException 以外の非検査例外も握りつぶしちゃうけど大丈夫なんだろうか。まぁ、このコードなら普通はそういうことはおきないだろうけど。