Latest web development tutorials

Scala Exception Handling

Scala pengecualian penanganan dan bahasa serupa lainnya seperti Jawa.

Metode scala mungkin melemparkan pengecualian dengan cara metode untuk mengakhiri kode yang relevan, tanpa melalui nilai kembali.


Melemparkan pengecualian

Scala dan Jawa metode melemparkan pengecualian, penggunaan metode melempar, misalnya, melempar parameter pengecualian baru:

throw new IllegalArgumentException

Menangkap pengecualian

Mekanisme pengambilan abnormal dengan bahasa lain, jika terjadi pengecualian, kata menangkap secara berurutan ditangkap. Dengan demikian, dalam kata-kata menangkap, kecuali yang lebih spesifik untuk lebih mengandalkan sebelum dan setelah kelainan lebih umum lebih dapat diandalkan. Jika pengecualian tidak menangkap kata-kata, pengecualian tidak akan diproses dan akan ditingkatkan ke callee.

Menangkap pengecualian menangkap klausa, tata bahasa dan bahasa lainnya tidak sama. Dalam Scala, ide-ide yang dipinjam melakukan pencocokan pola untuk mencocokkan pengecualian, sehingga kode menangkap, kasus ini merupakan rangkaian kata-kata, seperti dalam contoh ini:

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

Pelaksanaan kode di atas, output adalah:

$ scalac Test.scala 
$ scala Test
Missing file exception

menangkap frase dalam isi dengan pertandingan dalam kasus ini persis sama. Karena penanganan pengecualian adalah dalam urutan, jika kelainan yang paling umum, Throwable, ditulis di depan, di belakang kasus yang tidak menangkap, sehingga Anda perlu untuk menuliskannya lalu.


akhirnya pernyataan

akhirnya pernyataan digunakan untuk mengeksekusi baik pengolahan normal atau langkah-langkah yang perlu dilakukan ketika pengecualian terjadi, contoh adalah sebagai berikut:

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

Pelaksanaan kode di atas, output adalah:

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