Latest web development tutorials

Scala manejo de excepciones

Scala manejo de excepciones y otros lenguajes similares como Java.

El método de Scala puede lanzar una excepción por medio de un método de interrumpir el código en cuestión, sin pasar por el valor de retorno.


Lanzar una excepción

métodos Scala y Java lanzan excepciones, el uso de métodos de tiro, por ejemplo, lanzar un nuevo parámetros de excepción:

throw new IllegalArgumentException

Detectar la excepción

mecanismo de captura anormal con otros idiomas, si se produce una excepción, las palabras de captura son capturados de forma secuencial. De este modo, en las palabras de la captura, la excepción más específica a confiar más antes y después de las manifestaciones más frecuentes más fiable. Si una excepción no coge las palabras, la excepción no será procesada y se actualizará a destinatario de la llamada.

cláusula catch excepción de captura, la gramática y otros idiomas no son lo mismo. En Scala, las ideas prestadas hacen coincidencia de patrones para que coincida con una excepción, por lo que el código de captura, el caso es una serie de palabras, como en este ejemplo:

import java.io.FileReader
import java.io.FileNotFoundException
import java.io.IOException

object Test {
   def main(args: Array[String]) {
      try {
         val f = new FileReader("input.txt")
      } catch {
         case ex: FileNotFoundException =>{
            println("Missing file exception")
         }
         case ex: IOException => {
            println("IO Exception")
         }
      }
   }
}

Aplicación del código anterior, la salida es:

$ scalac Test.scala 
$ scala Test
Missing file exception

eslogan en el contenido con el partido en el caso es exactamente el mismo. Debido a que el manejo de excepciones es en secuencia, si la anomalía más común, Throwable, escrita en la parte delantera, en la parte posterior de la caja que no se captura, por lo que necesita para escribir en último lugar.


finally

finally se utiliza para ejecutar ya sea normal o procesamiento de los pasos deben realizarse cuando se produce una excepción, los ejemplos son los siguientes:

import java.io.FileReader
import java.io.FileNotFoundException
import java.io.IOException

object Test {
   def main(args: Array[String]) {
      try {
         val f = new FileReader("input.txt")
      } catch {
         case ex: FileNotFoundException => {
            println("Missing file exception")
         }
         case ex: IOException => {
            println("IO Exception")
         }
      } finally {
         println("Exiting finally...")
      }
   }
}

Aplicación del código anterior, la salida es:

$ scalac Test.scala 
$ scala Test
Missing file exception
Exiting finally...