В данной статье мы рассмотрим механизм обработки исключений в 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.
В следующей статье мы рассмотрим работу с файлами в данном языке программирования.