簡體   English   中英

在GWT中捕獲異常

[英]Catching exception in GWT

我有一個GWT項目,其中有一個這樣的方法:

    @Override
    public void onFailure(Throwable caught)
    {
        if (caught.getClass()== MyException.class)
        {
            //do specific stuff
        }
        else
        {
            // do generic stuf
        }
    }

其中MyException是自定義定義的異常。 我的一位同事告訴我,由於它將被轉換成JavaScript,即“沒有類”,所以這不是一個好主意,我應該使用:

    @Override
    public void onFailure(Throwable caught)
    {
       try {
         throw caught;
       } catch (MyException e) {
         //do specific stuff
       } catch (Throwable t) {
         //do generic stuff
       } 
    }

由於第一種方法確實有效(至少在我這邊),如果我繼續使用它會出現任何問題,還是我應該選擇第二種方法?

您可以使用instanceof運算符,它可以正常工作-

@Override
public void onFailure(Throwable caught)
{
    if (caught instanceof MyException)
    {
        //do specific stuff
    }
    else
    {
        // do generic stuf
    }
}

我個人更喜歡第二種方式。

您未捕獲的任何異常都可以由全局UncaughtExceptionHandler處理。

GWT.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
  public void onUncaughtException(Throwable e) {
    // TODO Global Exception Handling ...
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM