将Java中的try-catch重写为Kotlin

将Java中的try-catch重写为Kotlin,java,kotlin,try-catch,invoke,arrow-functions,Java,Kotlin,Try Catch,Invoke,Arrow Functions,考虑将java try catch重写为Kotlin。 如果出现错误,只需记录状态。 对kotlin使用Arrow是一种过度杀伤力吗 Kotlin/Arrow中的示例实现: fun some_method(): <SomeReturnType>{ Try.invoke { //code which will return SomeReturnType }.getOrElse { throwable -> when (

考虑将java try catch重写为Kotlin。 如果出现错误,只需记录状态。 对kotlin使用Arrow是一种过度杀伤力吗

Kotlin/Arrow中的示例实现:

fun some_method(): <SomeReturnType>{
Try.invoke {
           //code which will return SomeReturnType
        }.getOrElse { throwable ->
            when (throwable) {
                is RuntimeException -> {
            //  do something
                }
                is SomeOtherEception -> {
            //  do something
                }
                else -> {do something}
            }
        }
}
fun some_method():{
Try.invoke{
//返回SomeReturnType的代码
}.getOrElse{throwable->
何时(可丢弃){
是运行时异常->{
//做点什么
}
是另一个选项->{
//做点什么
}
else->{做点什么}
}
}
}

为什么不使用一组只记录状态的自定义异常?类似的想法只有在kotlin stdlib中使用
运行捕获才能实现。虽然Arrow是一个很好的库,但仅仅因为这个
Try
模式就包含了它,它的编写方式并没有增加任何价值。功能性尝试对于组合操作或将错误处理移入调用方法(例如,return
Try
)非常有用。为什么不使用只记录状态的自定义异常集呢?类似的想法只有使用
runCatching
的kotlin stdlib才能实现。虽然Arrow是一个很好的库,但仅仅因为这个
Try
模式就包含了它,它的编写方式并没有增加任何价值。功能性尝试对于组合操作或将错误处理移到调用方法中(例如,return
Try
)非常有用。