Dmi*_*riy 8 closures scala exception
免责声明:斯卡拉的绝对新手:(
我有以下定义:
def tryAndReport(body: Unit) : Unit = {
try {
body
} catch {
case e: MySpecificException => doSomethingUseful
}
}
Run Code Online (Sandbox Code Playgroud)
我称之为:
tryAndReport{
someCodeThatThrowsMySpecificException()
}
Run Code Online (Sandbox Code Playgroud)
虽然对someCodeThatThrowsMySpecificException的调用发生得很好,但是在tryAndReport中没有捕获异常.
为什么?
谢谢!
该body
在你的tryAndReport
方法是不是倒闭或块,它的(类型的值Unit
).
我不建议使用by-name参数,而是使用显式函数.
def tryAndReport(block: () => Unit): Unit = {
try { block() }
catch { case e: MSE => dSU }
}
Run Code Online (Sandbox Code Playgroud)