15 scala异常处理

scala中为了防止代码异常终止,处理就需要用到 trycatch 块处理,出错的代码写在 try 块中,catch用来处理异样
基本语法:

 /* 说明
      * 1. 在scala中只有一个catch
      * 2. 在catch中可以有多个case,每个case可以匹配一种异常 case ex:ArithmeticException
      * 3. => 关键符号,表示后面要执行的代码块
      * 4. finally 最后要执行的
      * */
      * 
try{
	会出异常的代码块
}catch{
	case ex1
	case ex2
	...
}
object throwDemo {
  def main(args: Array[String]): Unit = {
    // 如果需要在test()抛出异常后,代码可以继续执行,则我们需要处理异常
    try{
      test()
    }catch {
      case ex:Exception=>println("捕获了一个异常:"+ ex.getMessage)
      case ex2:ex:Exception=> _
    }finally {
      // finally语句用于处理不管正常处理还是异常发生都需要执行的步骤,一般用于对象的清理工作
    }
    println("ok~~~~")
  }

  def test(): Nothing = {
    throw new Exception("异常No1出现")
  }
}

在sacla中,可以使用throw关键字来抛出一个异常,所有的异常都是Throwable的子类,throw表达式的类型时NothingNothing又是所有类型的子类,所以Throw可以使用在任意地方

object throwdemo2 {
  def main(args: Array[String]): Unit = {
    try{
      f11()
    } catch {
      case ex:Exception => {
        println("捕获一个异常:"+ ex.getMessage)
    }
    } finally {}
    println("ok~~~")

  }

  @throws(classOf[NumberFormatException])  // 类似python中的装饰器
  def f11() ={
    "abc".toInt
  }
}

猜你喜欢

转载自blog.csdn.net/u014644167/article/details/110007927