Wie konvertiere ich Funktionen, die Ausnahmen auslösen, in Funktionen, die entweder zurückgeben?
Angenommen, ich habe einige Funktionen, die Ausnahmen auslösen. Ich wickle sie ein, um zurückzukehrenEither[Throwable, <function return type>]
. (Nehmen wir an, ich braucheEither
eher, alsTry
).
def fooWrapper(arg1: FooArg1, arg2: FooArg2) =
try Right(foo(arg1, arg2)) catch { case NonFatal(e) => Left(e) }
def barWrapper(arg1: BarArg1, arg2: BarArg2, a3: BarArg3) =
try Right(bar(arg1, arg2, artg3)) catch { case NonFatal(e) => Left(e) }
...
Jetzt würde ich gerne eine schreibengenerisch Wrapper, um den Bolierplate-Code loszuwerden. Was würdest du vorschlagen ?