Что означает "попробовать" в Scala без блокирования или окончательного блокирования?

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

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

Имеет ли это какое-то значение за пределами,

{ println("Foo") }

?

2 ответа

Решение

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

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

try { exceptionThrowingFunction() }

такой же как

exceptionThrowingFunction()

См. Главу 6.22 спецификации языка pdf для получения дополнительной информации.

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

Другие вопросы по тегам