我試圖檢索其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