J'utilise Akka et voudrais exécuter du code pour tous les cas d'une fonction partielle. Pour la supervision des acteurs, j'ai quelque chose comme:Scala, code par défaut pour la fonction partielle?
val supervisorStrategy = OneForOneStrategy() {
case npe: NullPointerException => Stop
case re: RuntimeException => Restart
}
La seule façon que j'ai trouvé d'exécuter un code pour tous les cas sans avoir à écrire de nouveau à tous les cas, est la suivante:
val pf = new PartialFunction[Throwable, Directive] {
def apply(throwable: Throwable) = {
doSomething(throwable)
throwable match {
case NullPointerException => Stop
case RuntimeException => Restart
}
}
def isDefinedAt(throwable: Throwable) = true
}
val supervisorStrategy = OneForOneStrategy()(pf)
Je regardé autour et à d'autres réponses (comme this one) mais n'a pas pu trouver une alternative à celle que je suis venu avec.
Voulez-vous que 'doSomething' soit appelé même si une exception qui n'est ni 'NullPointerException' ni' RuntimeException' est passée? –