パッケージ org.opengion.fukurou.system

# クラス Closer

java.lang.Object
org.opengion.fukurou.system.Closer

public final class Closer extends Object
Closer.java は、共通的に使用される close処理を集約した、クラスです。 各種 close() 処理では、Exception が発生しても、どうすることも出来ない ケースが多々あります。また、close() 処理中の Exception の為だけに、 try ～ catch 節を用意しなければならず、finally 節内からの さらなる throw など、コーディング上、本流以外の箇所で、色々と問題が発生します。 ここでは、とりあえず、LogWriter.log するだけにしていますが、 将来的には、エラーを別ファイルにセーブしたり、データベースに書き込んだり 出来ると思います。 また、close 処理とは異なりますが、commit や、rollback など、finally 節に 書き込んで、必ず処理したいが、Exception 発生時に、どうしようもない処理も、 ここに集約していきます。

変更履歴:
  6.4.2.0 (2016/01/29) エラー処理を統一的に行います。, 6.4.2.0 (2016/01/29) package変更 fukurou.util → fukurou.system
導入されたバージョン:
  JDK5.0,

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `static boolean`
  `autoClose(AutoCloseable autoClose)`
  AutoCloseable オブジェクトをクローズします。
  `static boolean`
  `commit(Connection conn)`
  Connection オブジェクトを commit します。
  `static boolean`
  `connClose(Connection conn)`
  Connection オブジェクトをcloseします。
  `static boolean`
  `ioClose(Closeable obj)`
  io関連の close 処理時の IOException を無視して、close 処理を行います。
  `static boolean`
  `resultClose(ResultSet result)`
  ResultSet オブジェクトをクローズします。
  `static boolean`
  `rollback(Connection conn)`
  Connection オブジェクトをrollbackします。
  `static boolean`
  `stmtClose(Statement stmt)`
  Statement オブジェクトをクローズします。
  `static boolean`
  `zipClose(ZipFile zipFile)`
  ZipFile オブジェクトをクローズします。

  ### クラスから継承されたメソッド java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## メソッドの詳細

  - ### ioClose

    public static boolean ioClose(Closeable obj)
    io関連の close 処理時の IOException を無視して、close 処理を行います。 ここでは、処理中のエラーは、System.err に出力するだけで無視します。 これにより、try ～ catch ～ finally 処理で、close を finally 処理から 例外を送出させなくてすむようになります。 引数が、null の場合は、何も処理しません。(正常:trueを返します。)
    パラメータ:
      `obj` - Closeableインターフェースを実装したIO関連オブジェクト
    戻り値:
      正常:true/異常:false
    変更履歴:
      4.0.0.0 (2007/02/08) 新規追加

  - ### commit

    public static boolean commit(Connection conn)
    Connection オブジェクトを commit します。 ここでは、処理中のエラーは、System.err に出力するだけで無視します。
    パラメータ:
      `conn` - コネクションオブジェクト
    戻り値:
      正常:true/異常:false
    変更履歴:
      4.0.0.0 (2007/02/08) 新規追加

  - ### rollback

    public static boolean rollback(Connection conn)
    Connection オブジェクトをrollbackします。 ここでは、処理中のエラーは、標準出力に出力するだけで無視します。
    パラメータ:
      `conn` - コネクションオブジェクト
    戻り値:
      正常:true/異常:false
    変更履歴:
      4.0.0.0 (2007/02/08) 新規追加, 8.1.0.4 (2022/01/28) Connection#isClosed で先に判定する。

  - ### connClose

    public static boolean connClose(Connection conn)
    Connection オブジェクトをcloseします。 ここでは、処理中のエラーは、標準出力に出力するだけで無視します。 ここでは、現実の Connection の close() メソッドを呼び出しますので、 キャッシュ等で使用しているコネクションには適用しないでください。
    パラメータ:
      `conn` - コネクションオブジェクト
    戻り値:
      正常:true/異常:false
    変更履歴:
      4.0.0.0 (2007/02/08) 新規追加, 5.5.5.0 (2012/07/28) commit追加, 5.9.4.0 (201601//08) commit前にvalidのチェックを行う(10秒でタイムアウト)

  - ### stmtClose

    public static boolean stmtClose(Statement stmt)
    Statement オブジェクトをクローズします。 ここでは、処理中のエラーは、標準出力に出力するだけで無視します。
    パラメータ:
      `stmt` - Statementオブジェクト
    戻り値:
      正常:true/異常:false
    変更履歴:
      4.0.0.0 (2007/02/08) 新規追加, 8.1.0.3 (2022/01/21) isClosed()ﾁｪｯｸ他

  - ### resultClose

    public static boolean resultClose(ResultSet result)
    ResultSet オブジェクトをクローズします。 ここでは、処理中のエラーは、標準出力に出力するだけで無視します。
    パラメータ:
      `result` - ResultSetオブジェクト
    戻り値:
      正常:true/異常:false
    変更履歴:
      4.0.0.0 (2007/02/08) 新規追加, 8.1.0.3 (2022/01/21) isClosed()ﾁｪｯｸ他

  - ### zipClose

    public static boolean zipClose(ZipFile zipFile)
    ZipFile オブジェクトをクローズします。 Jar ファイルも、このメソッドでクローズします。 ここでは、処理中のエラーは、標準出力に出力するだけで無視します。
    パラメータ:
      `zipFile` - ZipFileオブジェクト
    戻り値:
      正常:true/異常:false
    変更履歴:
      5.5.2.6 (2012/05/25) findbugs対応に伴い、新規追加

  - ### autoClose

    public static boolean autoClose(AutoCloseable autoClose)
    AutoCloseable オブジェクトをクローズします。 これは、Java1.7 で導入された、try-with-resourcesブロックの終了時に自動的に呼び出される close() メソッドを、使用します。 基本的には、try-with-resourcesブロックを使用すべきですが、Exception を発生させたくないため ここで、close() する処理を残しておきます。 ちなみに、IO系や、SQL系も、AutoCloseable を継承していますが、独自のエラーメッセージを出せないため、 エラーの内容がわかっている場合は、個々に適したクロースメソッドを呼び出してください。
    パラメータ:
      `autoClose` - AutoCloseableオブジェクト
    戻り値:
      正常:true/異常:false
    変更履歴:
      6.4.2.0 (2016/01/29) エラー処理を統一的に行います。