2010-04-10 131 views
3

我處理的是在GWT中設計的網站,我想檢查在訪問網站之間互聯網連接是否中斷。如果互聯網關閉,我想給消息提供無法連接到服務器或類似Gmail處理它的內容。如何在GWT應用程序中處理互聯網連接

有人可以建議什麼是最好的方法來處理這個問題嗎?

回答

2

這就是AsyncCallbackonFailure(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()

+0

爲什麼你重新拋出'抓住',然後抓住它而不是'if(抓住instanceof InvocationException){...} ...'。你有鏈接到你提到的文檔,這解釋了爲什麼推薦這種模式? – 2010-04-10 11:26:45

+1

無論哪種方式都行,這只是一個偏好問題。這是他們在示例中使用的模式。如果您忘記添加'else'語句,則重新拋出它具有異常不會丟失的優點。 – 2010-04-10 11:53:21

+0

謝謝傑森的回覆。我只是使用if(捕獲instanceof InvocationException){..},它適用於我。非常感謝。 – Priya 2010-04-10 13:38:52

相關問題