Ein gemeinsames meme Ich sehe zu erhalten, wenn Scala wunderbar Try
Konstrukt ist:Reiniger Art und Weise Ausnahme, wenn nicht in der Lage zu werfen Rückgabewert von Try Ausführung
Try(canThrowException) match {
case Success(result) => result
case Failure(e) => throw new Exception("Couldn't do it", e)
}
ich oft versucht bin zu dieser ein bisschen mehr elegant konstruieren:
Try(canThrowException).getOrElse(throw new Exception("Couldn't do it"))
Doing entfernt so meine Fähigkeit, die Ausnahme-Kette, die von canThrowException
geworfen wurde, sieht aber schöner.
Kennen Sie einen Weg, sowohl das elegante Konstrukt als auch die Ausnahmekette zu haben?
Sie könnten Erweiterungsmethoden hinzufügen; 'def throw(): Erfolg [A]', 'def getOrTThrow: A',' def Wurf (f: Throwable => Nichts): Erfolg [A] ',' def getOrThrow (f: Wurfbar => Nichts): A zum Beispiel. –