Latest web development tutorials

Scalaの例外処理

Scalaの例外処理やJavaなどの他の類似の言語。

Scalaの方法は、戻り値を経由せずに、関連するコードを終了させる方法により、例外をスローすることがあります。


例外をスロー

スカラ座とJavaメソッドが例外をスロー、スロー法の使用は、例えば、新しい例外パラメータを投げます:

throw new IllegalArgumentException

例外をキャッチ

他の言語との異常な捕捉機構例外が発生した場合、キャッチワードが順次取得されます。 このように、キャッチの言葉、より信頼性の高い、より一般的な異常の前後に多くを依存しているために、より具体的な例外インチ 例外は言葉をキャッチしていない場合は、例外が処理されませんと呼び出し先にアップグレードされます。

キャッチ例外catch句、文法や他の言語は同じではありません。 借りたアイデアは例外と一致するようにパターンマッチングするので、キャッチコードを行うスカラ座では、ケースは、この例のように、単語のシリーズです。

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

上記のコードの実装、出力は次のようになります。

$ scalac Test.scala 
$ scala Test
Missing file exception

場合の一致とコンテンツ内のキャッチ・フレーズは、まったく同じです。 例外処理がシーケンスにあるので、もしあなたが最後にそれを記述する必要がありますので、キャッチされていないケースの背面には、前に書かれた最も一般的な異常、Throwableを、。


finallyステートメント

最後に文は、通常の処理のいずれかを実行するために使用されるか、または例外が発生した場合の手順は以下のような例であり、実行する必要があります。

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

上記のコードの実装、出力は次のようになります。

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