title: Throwing exceptions in Scala, what is the "official rule"
body: <p>I'm following the Scala course on Coursera.
  I've started to read the Scala book of Odersky as well.</p>
  
  <p>What I often hear is that it's not a good idea to throw exceptions in functional languages, because it breaks the control flow and we usually return an Either with the Failure or Success.
  It seems also that Scala 2.10 will provide the Try which goes in that direction.</p>
  
  <p>But in the book and the course, Martin Odersky doesn't seem to say (at least for now) that exceptions are bad, and he uses them a lot.
  I also noticed the methods assert / require...</p>
  
  <p>Finally I'm a bit confused because I'd like to follow the best practices but they are not clear and the language seems to go in both directions...</p>
  
  <p>Can someone explain me what i should use in which case?</p>