3
我處理的是在GWT中設計的網站,我想檢查在訪問網站之間互聯網連接是否中斷。如果互聯網關閉,我想給消息提供無法連接到服務器或類似Gmail處理它的內容。如何在GWT應用程序中處理互聯網連接
有人可以建議什麼是最好的方法來處理這個問題嗎?
我處理的是在GWT中設計的網站,我想檢查在訪問網站之間互聯網連接是否中斷。如果互聯網關閉,我想給消息提供無法連接到服務器或類似Gmail處理它的內容。如何在GWT應用程序中處理互聯網連接
有人可以建議什麼是最好的方法來處理這個問題嗎?
這就是AsyncCallback
的onFailure(Throwable t)
方法的用途。當RPC由於任何原因(包括(但不限於)連接丟失)失敗時調用此方法。
由於獲取傳遞到onFailure()
的Throwable
可以是任何東西,在文檔中使用的模式是:
public void onFailure(Throwable caught) {
// Convenient way to find out which exception was thrown.
try {
throw caught;
} catch (IncompatibleRemoteServiceException e) {
// this client is not compatible with the server; cleanup and refresh the
// browser
} catch (InvocationException e) {
// the call didn't complete cleanly
// other Throwables may be caught here...
} catch (Throwable e) {
// last resort -- a very unexpected exception
}
}
具體,缺乏互聯網連接將導致InvocationException
要傳遞給onFailure()
爲什麼你重新拋出'抓住',然後抓住它而不是'if(抓住instanceof InvocationException){...} ...'。你有鏈接到你提到的文檔,這解釋了爲什麼推薦這種模式? – 2010-04-10 11:26:45
無論哪種方式都行,這只是一個偏好問題。這是他們在示例中使用的模式。如果您忘記添加'else'語句,則重新拋出它具有異常不會丟失的優點。 – 2010-04-10 11:53:21
謝謝傑森的回覆。我只是使用if(捕獲instanceof InvocationException){..},它適用於我。非常感謝。 – Priya 2010-04-10 13:38:52