Latest web development tutorials

Scala Gestione delle eccezioni

la gestione delle eccezioni Scala e altri linguaggi simili come Java.

Il metodo di Scala potrebbe generare un'eccezione per mezzo di un metodo per risolvere il relativo codice, senza passare per il valore di ritorno.


Un'eccezione

metodi Scala e Java generano eccezioni, l'uso di metodi di tiro, per esempio, lanciare una nuova parametri di eccezione:

throw new IllegalArgumentException

Intercettare l'eccezione

meccanismo di cattura anormale con altre lingue, se si verifica un'eccezione, le parole di cattura sono sequenziale catturati. Così, nelle parole di cattura, l'eccezione più specifico fare affidamento più prima e dopo le anomalie più comuni più affidabile. Se un'eccezione non cattura le parole, l'eccezione non verrà elaborato e sarà aggiornato al chiamato.

clausola catch eccezione cattura, la grammatica e altre lingue non sono la stessa cosa. In Scala, le idee prese in prestito fanno pattern matching per abbinare un'eccezione, in modo che il codice cattura, il caso è una serie di parole, come in questo esempio:

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")
         }
      }
   }
}

L'attuazione del codice di cui sopra, l'output è:

$ scalac Test.scala 
$ scala Test
Missing file exception

cattura frase nel contenuto con la partita nel caso è esattamente la stessa. Poiché la gestione delle eccezioni è in sequenza, se l'anomalia più comune, Throwable, scritta nella parte anteriore, nella parte posteriore del case che non sono cattura, quindi è necessario scriverlo scorso.


finally

infine istruzione viene utilizzata per eseguire sia la normale elaborazione o le misure devono essere eseguite quando si verifica un'eccezione, gli esempi sono i seguenti:

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...")
      }
   }
}

L'attuazione del codice di cui sopra, l'output è:

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