ダイコン時代の設計手法 - 例外処理

(http://d.hatena.ne.jp/higayasuo/20040608より)

今のプロジェクトでも検査例外は一切投げていません。
その代わりサービスを呼び出す場所で全ての例外をキャッチしています。
(ちなみにGUIアプリです)

  try {
    Service service = (Service)container.getComponent(Service.class);
    service.export(item);
  } catch (Exception e) {
   log.error(e.getMessage(), e);
   // エラーダイアログを表示
  }

オザッ記で例外のロギングについて話題があがっていましたが、
「例外をキャッチしてすぐロギング」という方針でやっています。
呼び出し元で2重にエラーがロギングされても、さほど問題はないと思います。
例外のログが残らないのが一番怖いんで・・・

try {
  // IOExceptionが発生する場所
} catch (IOException e){
   log.error(e.getMessage(), e);
   throw new IORuntimeException(e);
}