Latest web development tutorials

Scala Gestion des exceptions

la gestion des exceptions Scala et d'autres langues similaires, tels que Java.

La méthode de Scala peut lancer une exception au moyen d'une méthode pour mettre fin le code correspondant, sans passer par la valeur de retour.


Jeter une exception

méthodes Scala et Java lèvent des exceptions, l'utilisation de méthodes de jet, par exemple, lancer un nouveau paramètres d'exception:

throw new IllegalArgumentException

Attrapez l'exception

mécanisme de capture anormale avec d'autres langues, si une exception se produit, les mots de capture sont séquentiellement capturé. Ainsi, selon les termes de la capture, l'exception plus spécifique de compter plus avant et après les anomalies les plus courantes plus fiables. Si une exception ne capture pas les mots, l'exception ne sera pas traitée et sera mis à jour à l'appelé.

clause catch Catch d'exception, la grammaire et d'autres langues ne sont pas les mêmes. En Scala, les idées empruntées font pattern matching pour correspondre à une exception, de sorte que le code catch, le cas est une série de mots, comme dans cet exemple:

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

Mise en œuvre du code ci-dessus, la sortie est:

$ scalac Test.scala 
$ scala Test
Missing file exception

catch phrase dans le contenu avec le match dans le cas est exactement le même. Parce que la gestion des exceptions est dans l'ordre, si l'anomalie la plus commune, Throwable, écrite à l'avant, à l'arrière de l'affaire qui ne sont pas attraper, si vous avez besoin de l'écrire dernier.


finally

finally est utilisé pour exécuter un traitement normal ou les étapes doivent être effectuées lorsqu'une exception se produit, les exemples sont les suivants:

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

Mise en œuvre du code ci-dessus, la sortie est:

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