Jas*_*Jas 8 functional-programming scala
斯卡拉的方式类似于Try:
timer.start()
try {
doThis()
} finally {
timer.cancel()
}
Run Code Online (Sandbox Code Playgroud)
Rég*_*les 11
假设一个异常Try只是创建一个Failure值(而不是在使用时将控制转移到外部catch块try),原始finally块中的代码 只需要在之后执行Try.换句话说,这将做:
timer.start()
val result = Try{
doThis()
}
timer.cancel()
result
Run Code Online (Sandbox Code Playgroud)
据我所知,没有内置的快捷方式可以避免捕获result只是按原样返回它.
由于Try不会在程序流中引发异常,因此我相信只需编写以下内容:
timer.start()
Try(doThis())
timer.cancel()
Run Code Online (Sandbox Code Playgroud)
Try(doThis())如果希望处理异常(而不是盲目地忽略它)或调用结果,则可以分配一个值并进一步处理它。