Latest web development tutorials

Scala manipulação de exceção

manipulação de exceção Scala e outras linguagens semelhantes, como Java.

O método de Scala pode lançar uma exceção por meio de um método para encerrar o código relevante, sem passar pelo valor de retorno.


Lançar uma exceção

métodos Scala e Java lançar exceções, o uso de métodos lançam, por exemplo, lançar uma nova parâmetros de exceção:

throw new IllegalArgumentException

Capturar a exceção

mecanismo de captura de anormal com outras línguas, se ocorrer uma exceção, palavras de captura são sequencialmente capturado. Assim, nas palavras da captura, a exceção mais específica a confiar mais antes e depois das anormalidades mais comuns mais confiável. Se uma exceção não pega as palavras, a exceção não será processado e será atualizado para o receptor.

exceção captura cláusula catch, gramática e outras línguas não são os mesmos. Em Scala, as idéias emprestadas fazer a correspondência de padrões para coincidir com uma exceção, então o código de captura, o caso é uma série de palavras, como neste exemplo:

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

Implementação do código acima, a saída é:

$ scalac Test.scala 
$ scala Test
Missing file exception

slogan no conteúdo com o jogo no caso é exatamente o mesmo. Como a manipulação de exceção é em seqüência, se a anormalidade mais comum, Throwable, escrito na parte dianteira, na parte de trás do caso que não são pegar, então você precisa para escrevê-lo pela última vez.


finally

Finalmente declaração é usado para executar qualquer processamento normal ou os passos devem ser executados, quando ocorre uma excepção, os exemplos são os seguintes:

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

Implementação do código acima, a saída é:

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