Scala学習の道の編十(scala異常処理)
1644 ワード
Scala異常処理
1、放出異常
Scalaが異常を投げ出す方法はJavaと同様にthrowメソッドを用いる
例1:例外の放出
2、捕獲異常
異常スナップのメカニズムは他の言語と同様に、異常が発生した場合、catch文は順番にスナップされます.
catch文では、具体的な異常ほど前に頼り、普遍的な異常ほど後に頼る.異常捕捉は順序によって行われるため、最も一般的な異常、Throwable、一番前に書かれている場合、その後ろのcaseは捕捉できないため、一番後ろに書く必要がある.投げ出された例外がcatch文にない場合、その例外は処理できず、呼び出し元にアップグレードされます.Scalaでは,パターンマッチングの考え方を借りて異常なマッチングを行うため,catchのコードでは一連のcase文である.catchの文の内容はmatchのcaseと全く同じです.例2:パターンマッチングの例外取得
finally文
finally文は、通常の処理でも異常が発生した場合でも実行する必要があるステップインスタンス3を実行するために使用されます.
1、放出異常
Scalaが異常を投げ出す方法はJavaと同様にthrowメソッドを用いる
例1:例外の放出
throw new IllegalArgumentException
2、捕獲異常
異常スナップのメカニズムは他の言語と同様に、異常が発生した場合、catch文は順番にスナップされます.
catch文では、具体的な異常ほど前に頼り、普遍的な異常ほど後に頼る.異常捕捉は順序によって行われるため、最も一般的な異常、Throwable、一番前に書かれている場合、その後ろのcaseは捕捉できないため、一番後ろに書く必要がある.投げ出された例外がcatch文にない場合、その例外は処理できず、呼び出し元にアップグレードされます.Scalaでは,パターンマッチングの考え方を借りて異常なマッチングを行うため,catchのコードでは一連のcase文である.catchの文の内容はmatchのcaseと全く同じです.例2:パターンマッチングの例外取得
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 =>{ // 1
println("Missing file exception")
}
case ex: IOException => { // 2
println("IO Exception")
}
}
}
}
finally文
finally文は、通常の処理でも異常が発生した場合でも実行する必要があるステップインスタンス3を実行するために使用されます.
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...")
}
}
}