我需要拋出異常。唯一的問題是異常是從方法中啓動的線程拋出的。如何從線程拋出異常?
這裏是我的意思的例子:
public void connectToWebsite(String URL){
new Thread(){
@Override
public void run(){
openURLConnection(URL);//Throws Malformed URL and IO Exception
}
};
}
這是一個API的一部分,所以我想,讓API的用戶處理異常,他們怎麼會這樣選擇。但是,我不能讓connectToWebsite(url)
拋出異常,因爲異常在運行中被拋出。我不能得到run()
拋出異常,因爲它不會覆蓋運行方法。有沒有一種方法可以在不構建整個新線程類的情況下拋出異常?或者,我是否應該加入與printStackTrace
s的捕獲?
我理想上喜歡connectToWebsite
拋出異常並讓用戶處理它。但是,這甚至有可能嗎?如果是這樣,怎麼樣?如果我不能或不應該拋出異常,我應該如何通知用戶出了什麼問題?
你寫了哪個API來聲明拋出異常,在方法中使用 – 2014-03-02 20:13:52
你看到了嗎? http://stackoverflow.com/questions/4491606/java-thread-run-method-cannot-throw-checked-exception –
http://book.javanb.com/java-threads-3rd/jthreads3-CHP-13- SECT-5.html剛剛發現。看看它。未捕獲的異常通過可以重寫的方法處理。發生異常的線程作爲參數傳遞給此處理程序。 – 2014-03-02 20:15:13