Najlepszy samouczek Scala Obsługa wyjątków W 2024 r. W tym samouczku możesz dowiedzieć się Wyjątek,Złapać wyjątek,finally,
obsługa wyjątków Scala i innych podobnych języków takich jak Java.
Metoda Scala może rzucić wyjątek w drodze sposobu wypowiedzenia odpowiedni kod, bez przechodzenia przez wartości zwracanej.
Metody Scala i Java generują wyjątki, stosowanie metod rzucać, na przykład rzucić nowe parametry wyjątek:
throw new IllegalArgumentException
Nieprawidłowy mechanizm przechwytywania z innymi językami, jeśli wystąpi wyjątek, złapać słowa są sekwencyjnie niewoli. Tak więc, zgodnie ze słowami połowu, tym bardziej specyficzny wyjątek bardziej polegać przed i po bardziej powszechne zaburzenia bardziej wiarygodne. Jeśli wyjątek nie złapać słowa, wyjątek nie będą rozpatrywane i zostaną przeniesieni do odbierającym.
Wyjątkiem Złap klauzula catch, gramatyki i inne języki nie są takie same. W Scala, pożyczone pomysły zrobić wzór pasujący dopasować wyjątek, więc kodzie połowu, sprawa jest szereg słów, jak w poniższym przykładzie:
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") } } } }
Realizacja powyższego kodu, wyjście jest:
$ scalac Test.scala $ scala Test Missing file exception
Zwrot catch w treści z meczu w przypadku jest dokładnie taka sama. Ponieważ obsługa wyjątków jest w kolejności, jeśli Najczęstszą nieprawidłowością, Throwable, napisany z przodu, z tyłu obudowy, które nie są złapać, więc trzeba napisać to ostatnie.
Wreszcie instrukcja jest używana do wykonania zarówno normalne przetwarzanie lub etapy muszą być wykonywane, gdy wystąpi wyjątek przykłady są następujące:
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 finallypl.") } } }
Realizacja powyższego kodu, wyjście jest:
$ scalac Test.scala $ scala Test Missing file exception Exiting finallypl.