Scala中的异常处理机制有两种方式
- 方式一
书写结构上同java,区别在于catch,scala通过case语法来捕获具体 异常并处理
try {
val num = 1 / 0
} catch {
case e: ArithmeticException => println(e)
case e: Exception => println(e)
} finally {
println("finally")
} //> java.lang.ArithmeticException: / by zero
//| finally
方式二,通过scala.util.Try来处理异常,如果成功,返回Success对象,如果失败,返回Failure对象
import scala.util.{ Try, Success, Failure }
def devideBy(x: Int, y: Int): Try[Int] = {
Try(x / y)
} //> devideBy: (x: Int, y: Int)scala.util.Try[Int]
devideBy(1, 0) match {
case Success(i) => println(s"Success,Value is:$i")
case Failure(s) => println(s"Failure,message is:$s")
}