Scala 异常处理

Scala 异常处理:

parseURL("www.baidu.com") 会返回一个 Success[URL] ,包含了解析后的网址, 反之 parseULR("www.baidu.com") 将返回一个含有 Exception 的 Failure[URL]。
使用 Try 与使用 Option 非常相似, 你可以调用 isSuccess 方法来检查一个 Try 是否成功,然后通过 get 方法获取它的值, 但是,这种方式的使用并不多见,因为你可以用 getOrElse 方法给 Try 提供一个默认值。
如果用户提供的 URL 格式不正确,我们就使用 www.sina.com 的 URL 作为备用。

import scala.util.{Failure, Random, Success, Try}

object TryTypeDemo extends App {
  case class URL(url: String)
  def parseURL(url: String): Try[URL] = {
    Try({
      if(Random.nextBoolean()){
        throw new Exception()
      } else {
        new URL(url)
      }
    })
  }

  val status = parseURL("www.baidu.com")

  //method 1
  println(status.isSuccess)
  status.isSuccess match {
    case true => println(status.get)
    case _ => println("www.sina.com")
  }
  //method 2
  status match {
    case Success(x) => println(status.get)
    case Failure(y) => println("www.sina.com")
  }
  //method 3
  println(status.getOrElse("www.sina.com"))

}

运行结果:

 

转载于:https://www.cnblogs.com/AK47Sonic/p/8372665.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值