Url Scala 中的异常

Url exception in Scala

此代码有效但抛出 java.net.MalformedURLException

val content = Source.fromURL("urladdress")

如果我需要块外的 content 值,如何用 try-catch 块包围它。

一种更实用的方法是使用 util.Try。

val contentT = Try(Source.fromURL(url))

这将为您提供一个 Try 对象,您可以在该对象上使用映射或折叠函数来使用内容。

然后您将内容用作

for (content <- contentT) {
   // do something with content
}

并使用 recover

处理异常
contentT recover {
  case e: MalformedURLException => // do something
}

您可以使用 scala.util.Try returns SuccessFailure 案例 class 中的结果。然后对此进行模式匹配以获得结果。

scala> val content = Try(Source.fromURL("urladdress"))
content: scala.util.Try[scala.io.BufferedSource] = Failure(java.net.MalformedURLException: no protocol: urladdress)