我试图检索其URL将传递给我的脚本的各种网站的大小,但是当我传递一个无效URL时,我没有收到异常,而是简单地获取一个非常小的页面。我使用Source.fromURL
,我得到下面的结果:Source.fromURL不会抛出一个无效URL的例外
thisIsClearlyABoggusURLThatCantPossiblyLeadAnyway 1052
www.bbc.co.uk 113871
第一个,因为它说,不应该有任何东西,但它确实。我的脚本如下:
def main(args:Array[String]){
val tasks = for(arg <- args) yield future {
try {
println(arg + " " + Source.fromURL(attachPrefix(arg)).length)
} catch {
case e : java.net.UnknownHostException => println(arg + " *")
}
}
awaitAll(20000L, tasks: _*)
}
def attachPrefix(url:String) = url.slice(0, 4) match {
case "http" => url
case "www." => "http://" + url
case _ => "http://www." + url
}
每个参数都被传递到函数attachPrefix
,以确保它在使用前必需的前缀。这个问题只来约,因为我开始传入URL作为参数,而不是将其映射到arg
,这是我一点我们已经在
args map attachPrefix
做什么是两者之间的区别,为什么是我目前的一个给这样的行为?
您可以使用[Java的方法(http://stackoverflow.com/q/2230676/298389) – 2013-02-27 20:54:46
非常感谢对于这个建议。我不知道那个:)然而,在这种情况下,我需要它在纯粹的斯卡拉。 – 2013-02-27 20:56:54
'scala.io.Source.fromURL(“http://www.thisIsClearlyABoggusURLThatCantPossiblyLeadAnyway”)'抛出'java.net.UnknownHostException'。我想知道你的代码检索的大小正在做什么?你的代码中是否有'toString' - 实际上是检索异常文本的长度,也许......? – Hbf 2013-02-27 21:48:00