クラス Closer
java.lang.Object
org.opengion.fukurou.system.Closer
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
io関連の close 処理時の IOException を無視して、close 処理を行います。static boolean
resultClose
(ResultSet result) ResultSet オブジェクトをクローズします。static boolean
rollback
(Connection conn) Connection オブジェクトをrollbackします。static boolean
Statement オブジェクトをクローズします。static boolean
ZipFile オブジェクトをクローズします。
-
メソッドの詳細
-
ioClose
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
Connection オブジェクトを commit します。 ここでは、処理中のエラーは、System.err に出力するだけで無視します。- パラメータ:
conn
- コネクションオブジェクト- 戻り値:
- 正常:true/異常:false
- 変更履歴:
- 4.0.0.0 (2007/02/08) 新規追加
-
rollback
Connection オブジェクトをrollbackします。 ここでは、処理中のエラーは、標準出力に出力するだけで無視します。- パラメータ:
conn
- コネクションオブジェクト- 戻り値:
- 正常:true/異常:false
- 変更履歴:
- 4.0.0.0 (2007/02/08) 新規追加, 8.1.0.4 (2022/01/28) Connection#isClosed で先に判定する。
-
connClose
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
Statement オブジェクトをクローズします。 ここでは、処理中のエラーは、標準出力に出力するだけで無視します。- パラメータ:
stmt
- Statementオブジェクト- 戻り値:
- 正常:true/異常:false
- 変更履歴:
- 4.0.0.0 (2007/02/08) 新規追加, 8.1.0.3 (2022/01/21) isClosed()チェック他
-
resultClose
ResultSet オブジェクトをクローズします。 ここでは、処理中のエラーは、標準出力に出力するだけで無視します。- パラメータ:
result
- ResultSetオブジェクト- 戻り値:
- 正常:true/異常:false
- 変更履歴:
- 4.0.0.0 (2007/02/08) 新規追加, 8.1.0.3 (2022/01/21) isClosed()チェック他
-
zipClose
ZipFile オブジェクトをクローズします。 Jar ファイルも、このメソッドでクローズします。 ここでは、処理中のエラーは、標準出力に出力するだけで無視します。- パラメータ:
zipFile
- ZipFileオブジェクト- 戻り値:
- 正常:true/異常:false
- 変更履歴:
- 5.5.2.6 (2012/05/25) findbugs対応に伴い、新規追加
-
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) エラー処理を統一的に行います。
-