Исключения в Scala работают как исключения во многих других языках, таких как Java. Вместо того, чтобы возвращать значение обычным способом, метод может завершиться с помощью исключения. Однако на самом деле Scala не имеет проверенных исключений.
Когда вы хотите обработать исключения, вы используете блок try {…} catch {…}, как в Java, за исключением того, что блок catch использует сопоставление для идентификации и обработки исключений.
Бросать исключения
Бросок исключения выглядит так же, как в Java. Вы создаете объект исключения и затем бросаете его с помощью ключевого слова throw следующим образом.
throw new IllegalArgumentException
Ловить исключения
Scala позволяет вам попробовать / перехватить любое исключение в одном блоке, а затем выполнить сопоставление с ним с помощью блоков case . Попробуйте следующий пример программы для обработки исключений.
пример
import java.io.FileReader import java.io.FileNotFoundException import java.io.IOException object Demo { 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") } } } }
Сохраните вышеуказанную программу в Demo.scala . Следующие команды используются для компиляции и выполнения этой программы.
команда
\>scalac Demo.scala \>scala Demo
Выход
Missing file exception
Поведение этого выражения try-catch такое же, как и в других языках, за исключением. Тело выполняется, и если оно выдает исключение, каждое предложение catch проверяется по очереди.
Окончательный пункт
Вы можете заключить выражение в предложение finally , если хотите, чтобы какой-либо код выполнялся независимо от завершения выражения. Попробуйте следующую программу.
пример
import java.io.FileReader import java.io.FileNotFoundException import java.io.IOException object Demo { 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...") } } }
Сохраните вышеуказанную программу в Demo.scala . Следующие команды используются для компиляции и выполнения этой программы.