La construcción Try-Catch es diferente en Scala que en Java, Try-Catch en Scala es una expresión. Scala hace uso de la coincidencia de patrones en la cláusula catch. Supongamos que tenemos que implementar una serie de código que puede generar una excepción y, si queremos controlar esa excepción, debemos utilizar el segmento Try-Catch, ya que nos permite intentar capturar todos y cada uno de los tipos de excepción en un solo bloque. , necesitamos escribir una serie de declaraciones de casos en catch, ya que Scala usa la coincidencia para analizar y manejar las excepciones.
- Ejemplo :
// Scala program of try-catch
// exception
// Creating object
object
Arithmetic
{
// Main method
def
main(args
:
Array[String])
{
// Try clause
try
{
// Dividing a number
val
result
=
11
/
0
}
// Catch clause
catch
{
// Case statement
case
x
:
ArithmeticException
=>
{
// Display this if exception is found
println(
"Exception: A number is not divisible by zero."
)
}
}
}
}
Producción:Exception: A number is not divisible by zero.
Aquí, se lanza una excepción ya que un número no es divisible por cero.
- Ejemplo :
// Scala program of Try-Catch
// Exception
import
java.io.FileReader
import
java.io.FileNotFoundException
import
java.io.IOException
// Creating object
object
GfG
{
// Main method
def
main(args
:
Array[String])
{
// Try clause
try
{
// Creating object for FileReader
val
t
=
new
FileReader(
"input.txt"
)
}
// Catch clause
catch
{
// Case statement-1
case
x
:
FileNotFoundException
=>
{
// Displays this if the file is
// missing
println(
"Exception: File missing"
)
}
// Case statement-2
case
x
:
IOException
=>
{
// Displays this if input/output
// exception is found
println(
"Input/output Exception"
)
}
}
}
}
Producción:Exception: File missing
Aquí, el bloque try se ejecuta primero y si se lanza alguna excepción, se verifica cada uno de los casos de la cláusula catch y se devuelve como salida el que coincide con la excepción lanzada.
Publicación traducida automáticamente
Artículo escrito por nidhi1352singh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA