Что означает "попробовать" в Scala без блокирования или окончательного блокирования?
В отличие от Java, Scala позволяет вам просто попробовать, без использования команды catch или finally:
scala> try { println("Foo") }
Foo
Имеет ли это какое-то значение за пределами,
{ println("Foo") }
?
2 ответа
Решение
Обработка исключений в Scala работает путем передачи любых исключений в анонимную функцию catch. Функция catch работает по шаблону, совпадающему с перехваченным исключением, и, если он не совпадает, передаст исключение.
Функция catch является необязательной, если она опущена, то исключение передается прямо вверх. Так по сути
try { exceptionThrowingFunction() }
такой же как
exceptionThrowingFunction()
См. Главу 6.22 спецификации языка pdf для получения дополнительной информации.
Я так не думаю. Я думаю, что Scala разрешает попытку без улова или, наконец, потому что нет причин запрещать это.