Maybe something like this to DRY it up:

```scala
  import scala.util.control.Exception

  private def handleInterruption: Exception.Catcher[Unit] = {
    case e: InterruptedException ⇒
      system.eventStream.publish(Error(e, self.path.toString, clazz(actor), "interrupted during message send"))
      Thread.currentThread.interrupt()
    case NonFatal(e) ⇒
      system.eventStream.publish(Error(e, self.path.toString, clazz(actor), "swallowing exception during message send"))
  }

  // and then: 
  try dispatcher.systemDispatch(this, Recreate(cause)) catch handleInterruption
```