Руководство по Scala. Обработка исключений.

В данной статье мы рассмотрим механизм обработки исключений в Scala. В данном языке программирования не существует проверяемых исключений, в отличие от Java. В остальном механизм обработки исключений в Scala крайне схож с аналогичным механизмом в Java.

Рассмотрим простой пример:


package net.proselyte.scalatutorial.exceptions

/**
  * Simple Scala class that demonstrates try/catch block in Scala.
  *
  * @author Eugene Suleimanov
  */

object TryCatchDemo {
  def main(args: Array[String]) {
    try {
      val result = 100 / 0;
      println(result);
    } catch {
      case ex: ArithmeticException => {
        println("ArithmeticException - cannot divide by zero");
      }
    }
  }
}

В результате мы получим следующий вывод в консоль:


ArithmeticException - cannot divide by zero

Process finished with exit code 0

Кроме того, в Scala поддерживается блок try/catch/finally, который ведёт себя аналогично такому же блоку в Java:


package net.proselyte.scalatutorial.exceptions

/**
  * Simple Scala class that demonstrates try/catch/finally block in Scala.
  *
  * @author Eugene Suleimanov
  */

object TryCatchFinallyDemo {
  def main(args: Array[String]) {
    try {
      val result = 100 / 0;
      println(result);
    } catch {
      case ex: ArithmeticException => {
        println("ArithmeticException - cannot divide by zero");
      }
    }finally {
      println("Block finally. This message will be shown in most cases.");
    }
  }
}

Результатом выполнения данной программы будет следующий вывод в консоль:


ArithmeticException - cannot divide by zero
Block finally. This message will be shown in most cases.

Process finished with exit code 0

На этом мы заканчиваем изучение обработки исключений в Scala.
В следующей статье мы рассмотрим работу с файлами в данном языке программирования.