Jogando exceções em Scala, qual é a “regra oficial”

Estou seguindo o curso de Scala no Coursera. Eu comecei a ler o livro Scala de Odersky também.

O que eu ouço com frequência é que não é uma boa ideia lançar exceções em linguagens funcionais, porque isso quebra o fluxo de controle e geralmente retornamos um com o fracasso ou o sucesso. Parece também que o Scala 2.10 fornecerá o Try que vai nessa direção.

Mas no livro e no curso, Martin Odersky não parece dizer (pelo menos por enquanto) que exceções são ruins, e ele as usa muito. Eu também notei que os métodos afirmam / exigem ...

Finalmente, estou um pouco confuso porque gostaria de seguir as melhores práticas, mas elas não são claras e a linguagem parece estar em ambas as direções ...

Alguém pode me explicar o que devo usar em cada caso?

questionAnswers(2)

yourAnswerToTheQuestion