From f6cab9b99c7fcb75158a23a5810b11348b02c5f1 Mon Sep 17 00:00:00 2001 From: chentao Date: Wed, 24 Feb 2016 23:58:57 +0800 Subject: [PATCH] Add IOUtils --- .../github/shadowsocks/utils/IOUtils.scala | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 src/main/scala/com/github/shadowsocks/utils/IOUtils.scala diff --git a/src/main/scala/com/github/shadowsocks/utils/IOUtils.scala b/src/main/scala/com/github/shadowsocks/utils/IOUtils.scala new file mode 100644 index 00000000..0fdf4269 --- /dev/null +++ b/src/main/scala/com/github/shadowsocks/utils/IOUtils.scala @@ -0,0 +1,33 @@ +package com.github.shadowsocks.utils + +import android.util.Log + +/** + * @author chentaov5@gmail.com + */ +object IOUtils { + + val TAG = "IOUtils" + + def autoClose[R <: {def close() : Unit}, T](in: R)(fun: => T): T = { + try { + fun + } finally if (in ne null) + try { + in.close() + } catch { + case e: Exception => Log.d(TAG, e.getMessage, e) + } + } + + def inSafe[T](fun: => T): Option[T] = { + var res: Option[T] = None + try { + res = Some(fun) + } catch { + case e: Exception => Log.d(TAG, e.getMessage, e) + } + res + } + +}