什么Scala的"尝试"意味着没有捕获或最终阻止?

Mat*_*t R 26 scala

与Java不同,Scala允许您在没有catch或finally子句的情况下进行"尝试":

scala> try { println("Foo") }
Foo
Run Code Online (Sandbox Code Playgroud)

这实际上是否有任何意义,

{ println("Foo") }
Run Code Online (Sandbox Code Playgroud)

Dan*_*ood 29

Scala的异常处理通过将任何异常传递给匿名catch函数来实现.catch函数通过模式匹配捕获的异常来工作,如果它不匹配,它将向上传递异常.

catch函数是可选的,如果省略则会直接传递异常.所以基本上

try { exceptionThrowingFunction() }
Run Code Online (Sandbox Code Playgroud)

是相同的

exceptionThrowingFunction()
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅语言规范 pdf的第6.22章.