Fehler behandelst du funktional mit Try (Erfolg oder Ausnahme) und Either. Für nebenläufige Aufgaben gibt es Future: Sie liefert ein Ergebnis später; mit map und flatMap verkettest du Schritte. Das Standard-Build-Werkzeug heißt sbt, komfortabler für kleine Projekte ist scala-cli.
Scala ist die Sprache von Apache Spark, einem wichtigen Werkzeug für große Datenmengen.
import scala.util.{Try, Success, Failure}
import scala.concurrent.{Future, Await}
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.duration.*
@main def fehlerDemo(): Unit =
Try("abc".toInt) match
case Success(n) => println(n)
case Failure(e) => println(s"Fehler: ${e.getMessage}")
val f = Future { 21 }.map(_ * 2)
println(Await.result(f, 2.seconds)) // 42Merke
Tryfängt Ausnahmen funktional abFutureliefert ein späteres Ergebnis- sbt und scala-cli bauen Projekte
Aufgabe
Wandle zwei Texte mit `Try` in Zahlen um und addiere sie, wenn beide gelingen.