Los bloques try/catch/finally de Scala son similares a los de Java pero la sintaxis es un poco diferente, principalmente en el bloque catch debido a que es similar a una expresión match.
Las expresiones match son una característica de Scala. Al igual que las expresiones if, las expresiones match retornan un valor por lo que las puedes usar como el cuerpo de un método.
A continuación veamos un ejemplo de una expresión match.
Nota importante: Los ejemplos mostrados en este artículo fueron probados con Scala 3.
def verdadero(a: Matchable): Boolean = a match
case false | 0 | "" => false
case _ => true
En este ejemplo, si la función verdadero recibe un valor false, el valor 0 o un string vacío esta retornará false, en cualquier otro caso retornará true.
Una vez que hemos visto como funcionan las expresiones match estamos en condiciones de ver entonces cómo funcionan los bloques try/catch/finally en Scala.
Bloques try/catch/finally
La forma general de los bloques try/catch/finally es la siguiente:
try
// Aquí debe ir algún código que lance alguna excepción
catch
case e1: Exception1Type => // Manejar esa excepción
case e2: Exception2Type => // Manejar esa excepción
finally
// Cierre sus recursos y haga cualquier otra cosa necesaria aquí
Similar a if y match, try es una expresión que retorna un valor, así que puedes escribir código, como por ejemplo, transformar un String a un Int como se muestra a continuación:
Con estos ejemplos sencillos hemos visto cómo funcionan los bloques try/catch/finally en Scala. Te invito a que le des un vistazo a mis cursos disponible en la plataforma de Udemy dando click en el siguiente enlace.