Бросать исключения в Scala, что такое «официальное правило»

Я следую за курсом Scala на Coursera. Я начал читать «Одесскую книгу о Скале».

Что я часто слышу, так это то, что не следует генерировать исключения в функциональных языках, потому что это нарушает поток управления, и мы обычно возвращаем Either with the Failure или Success. Также кажется, что Scala 2.10 предоставит Try, который идет в этом направлении.

Но в книге и курсе Мартин Одерский, кажется, не говорит (по крайней мере, на данный момент), что исключения плохие, и он часто их использует. Я также заметил методы assert / require ...

Наконец, я немного сбит с толку, потому что я хотел бы следовать лучшим практикам, но они не ясны, и язык, кажется, идет в обоих направлениях ...

Может кто-нибудь объяснить мне, что я должен использовать в этом случае?

Ответы на вопрос(2)

Ваш ответ на вопрос