Scala Exception Handling
Scala Ausnahmebehandlung und anderen ähnlichen Sprachen wie Java.
Scala-Methode kann eine Ausnahme durch eine Methode werfen den entsprechenden Code zu beenden, ohne den Umweg über den Rückgabewert geht.
Werfen Sie eine Ausnahme
Scala und Java-Methoden werfen Ausnahmen, die Verwendung von throw Methoden, zum Beispiel eine neue Ausnahme Parameter werfen:
throw new IllegalArgumentException
Fangen Sie die Ausnahme
Abnormal-Capture-Mechanismus mit anderen Sprachen, wenn eine Ausnahme auftritt, werden Fang Worte nacheinander erfasst. So wird in den Worten des Fangs, desto spezifischer Ausnahme mehr verlassen können, bevor und nachdem die häufiger Anomalien zuverlässiger. Wenn eine Ausnahme, die Worte nicht fängt, wird die Ausnahme nicht verarbeitet werden und wird dem Angerufenen aufgerüstet werden.
Fang Ausnahme catch-Klausel, Grammatik und andere Sprachen sind nicht die gleichen. In Scala, tun die geliehenen Ideen Pattern-Matching, eine Ausnahme zu passen, so dass die Fang Code, der Fall ist, eine Reihe von Wörtern, wie in diesem Beispiel:
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") } } } }
Die Umsetzung des obigen Codes ist die Ausgabe:
$ scalac Test.scala $ scala Test Missing file exception
Schlagwort in den Inhalt mit dem Spiel in dem Fall ist genau das gleiche. Da die Ausnahmebehandlung ist in der Reihenfolge, wenn die häufigste Anomalie, Throwable, in der Front geschrieben, in der Rückseite des Gehäuses, die nicht fangen werden, so dass Sie es zuletzt schreiben müssen.
schließlich Aussage
schließlich Anweisung entweder normale Verarbeitung oder die Schritte müssen zum Ausführen ausgeführt wird, wenn eine Ausnahme auftritt, die Beispiele sind wie folgt:
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...") } } }
Die Umsetzung des obigen Codes ist die Ausgabe:
$ scalac Test.scala $ scala Test Missing file exception Exiting finally...