我正在尝试检索其 URL 将传递给我的脚本的各种网站的大小,但是当我传递一个无效的 URL 时,我没有得到异常,而只是得到一个非常小的页面。我正在使用Source.fromURL
,我得到以下结果:
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
两者有什么区别,为什么我现在的人会出现这种行为?