Ответ 1
Scala Обработка исключений работает, передавая любые исключения для функции анонимного catch. Функция catch работает по шаблону, соответствующему исключенному исключению, и, если он не соответствует ему, будет исключаться исключение.
Функция catch является необязательной, если она не указана, исключение передается прямо вверх. Так что существенно
try { exceptionThrowingFunction() }
совпадает с
exceptionThrowingFunction()
Подробнее см. главу 6.22 спецификацию языка.