2017-02-21 76 views
0

我已閱讀articile,並提供了很好的解決方案在Activity環境中完美地工作。 我Android MVP:從模型類錯誤處理/手動觸發錯誤

int a = 1/0; 

的onCreate進行了測試。自定義異常處理程序確實觸發了。

目前我的應用程序採用了MVP架構。有在型號或演示層Implemeted一個像

try { 
     data = getStringFromFile(fileLocation); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

這可能會引發異常的一些代碼。但是,在Presenter或Model層中捕獲的異常不會觸發默認的異常處理程序。

我應該怎麼做才能使模型或演示層的可拋出異常觸發我創建的自定義UncaughtExceptionHandler?

還有,無論如何通過使用我自定義的異常手動觸發自定義UncaughtExceptionHandler。

+0

從演示類catch塊拋出異常即由於您的演示者類是由Activity類處理的,因此它會將異常引發到您已經處理了Exception的Activity類。 – nnn

+0

模型類通常只有getter和setter。不應該有任何例外。 – nnn

+0

@nnn對不起,我的模型也包括那些Engine/Service/Manager/Helper類。我試圖從Presenter拋出異常,但是,Android Studio要求我用try/catch包裝主持人。我可以知道在View類中處理它的正確方法是什麼? int a = 1/0永遠不會提示錯誤消息,並強迫我用try/catch包裝它。 – wenyang9319

回答

0

裹在嘗試捕捉你的演示代碼,然後從catch塊拋出異常由父類來處理它:

public void getData() throws Exception 
try { 
     int a = 1/0; 
    } catch (Exception e) { 
     throw e; 
    } 
}