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
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值