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

时间:2009-10-10 09:18:03

标签: scala

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

scala> try { println("Foo") }
Foo

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

{ println("Foo") }

2 个答案:

答案 0 :(得分:29)

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

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

try { exceptionThrowingFunction() }

相同
exceptionThrowingFunction()

有关详细信息,请参阅language spec pdf的第6.22章。

答案 1 :(得分:1)

我不这么认为。我认为Scala允许尝试没有捕获或最终因为没有理由禁止它。