Бросать исключения в Scala, что такое «официальное правило»
Я следую за курсом Scala на Coursera. Я начал читать «Одесскую книгу о Скале».
Что я часто слышу, так это то, что не следует генерировать исключения в функциональных языках, потому что это нарушает поток управления, и мы обычно возвращаем Either with the Failure или Success. Также кажется, что Scala 2.10 предоставит Try, который идет в этом направлении.
Но в книге и курсе Мартин Одерский, кажется, не говорит (по крайней мере, на данный момент), что исключения плохие, и он часто их использует. Я также заметил методы assert / require ...
Наконец, я немного сбит с толку, потому что я хотел бы следовать лучшим практикам, но они не ясны, и язык, кажется, идет в обоих направлениях ...
Может кто-нибудь объяснить мне, что я должен использовать в этом случае?