title: failure in Scala future's for comprehension
body: <p>I have three sequential Futures and use in the for comprehension like this</p>
  
  <pre><code>val comF = for {
    f1 &lt;- future1
    f2 &lt;- future2
    f3 &lt;- future3
  } yield {
    // something
  }
  
  comF onSuccess { }
  comF onFailure { 
    // ----------------      Here is the problem  --------------------------------
    //
    // How do I know which future failed(throw exception), when the callback comes here ?
    // Thanks for the help! Different futures using different exceptions can solve it.
  }
  </code></pre>
  
  <p>Now I have a future list like List[Future[T]], and first I transfer it to Future[List[T]] using this method (<a href="https://stackoverflow.com/questions/20307175/why-does-this-list-of-futures-to-future-of-list-transformation-compile-and-work">Why does this list-of-futures to future-of-list transformation compile and work?</a>). then I get the future </p>
  
  <pre><code>val fList: Future[List[T]]
  fList on Failure {
    // 
    // How do I know which is Fail now &gt;??
  }
  </code></pre>