El tratamiento de errores es una parte esencial del desarrollo de software, ya que permite manejar situaciones inesperadas de manera controlada y predecible. Scala proporciona herramientas como Try, Option, y Either para trabajar con errores de manera funcional, evitando el uso excesivo de excepciones.
Las excepciones en Scala son similares a las de Java, ya que ambos lenguajes comparten la JVM.
try {
val resultado = 10 / 0
println(resultado)
} catch {
case e: ArithmeticException => println("Error: División por cero.")
case e: Exception => println(s"Error general: ${e.getMessage}")
} finally {
println("Operación finalizada.")
}
try-catch-finally: Maneja excepciones de forma controlada.case: Captura tipos específicos de excepciones.Scala fomenta un enfoque funcional para manejar errores mediante Try, Option, y Either.
TryEl tipo Try representa una operación que puede fallar. Tiene dos posibles estados:
Success: La operación fue exitosa.Failure: La operación falló con una excepción.import scala.util.{Try, Success, Failure}
val resultado = Try(10 / 0)
resultado match {
case Success(valor) => println(s"Resultado: $valor")
case Failure(e) => println(s"Error: ${e.getMessage}")
}
Tryval seguro = Try(10 / 2).getOrElse(0) // Devuelve 0 si ocurre un error
println(seguro) // Salida: 5
val mensaje = Try(10 / 0).fold(
e => s"Falló con error: ${e.getMessage}",
v => s"Éxito: $v"
)
println(mensaje) // Salida: Falló con error: / by zero