title: Exception handling with Akka actors
body: <p>Does the exception generated by a function within the child actor have to be caught and thrown by the child actor explicitly or will the supervisor strategy directives(escalate) take care of percolating the generated exception to the supervisor actor behind the scenes?</p>
  
  <p>My supervisor strategy:</p>
  
  <pre><code>  override val supervisorStrategy =
  OneForOneStrategy(maxNrOfRetries = 5, withinTimeRange = 5 minute) {
    case _: ArithmeticException      ⇒ Resume
    case _: NullPointerException     ⇒ Restart
    case _: IllegalArgumentException ⇒ Stop
    case _: IOException              ⇒ Stop
    case _: Exception                ⇒ Restart
  }   
  </code></pre>
  
  <p>And some of the operations within the child actor could possibly throw an IOException. Should I put a try catch block in the child actor to catch it and then throw it so that the supervisor can catch it? Or will akka take care of it behind the scenes?</p>