Что означает Scala "try" означает без улова или окончательного блока?

В отличие от Java, Scala позволяет вам выполнить "пробную", без предложения catch или finally:

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

Значит ли это на самом деле имеет смысл,

{ println("Foo") }

?

Ответ 1

Scala Обработка исключений работает, передавая любые исключения для функции анонимного catch. Функция catch работает по шаблону, соответствующему исключенному исключению, и, если он не соответствует ему, будет исключаться исключение.

Функция catch является необязательной, если она не указана, исключение передается прямо вверх. Так что существенно

try { exceptionThrowingFunction() }

совпадает с

exceptionThrowingFunction()

Подробнее см. главу 6.22 спецификацию языка.

Ответ 2

Я так не думаю. Я думаю, что Scala позволяет попробовать без улова или, наконец, потому, что нет причин запрещать его.