damian
12/21/2016, 9:54 PMinline fun <T> tryOrNullWhen(vararg ignore: KClass<out Throwable>, body: () -> T): T? =
try { body() } catch (e: Exception) { if(ignore.any { it.java.isInstance(e) }) null else throw e }
inline fun <T , reified E : Throwable> tryOrNull(body: () -> T): T? = tryOrNullWhen<T>(E::class, body)