Что означает «попробовать» в Scala без блокирования или окончательного блокирования? - PullRequest
26 голосов
/ 10 октября 2009

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

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

Имеет ли это на самом деле какой-либо смысл за пределами,

{ println("Foo") }

Ответы [ 2 ]

29 голосов
/ 10 октября 2009

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

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

try { exceptionThrowingFunction() }

совпадает с

exceptionThrowingFunction()

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

1 голос
/ 10 октября 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...