2017-03-24 59 views
0

我有一些角度的服務負責跟蹤和計算事物。我想確保如果這些服務中的任何一個出現異常,並且不會影響代碼的其餘部分,但我希望保持錯誤處理的限制和特定於這些服務。有沒有一種很好的方法來做到這一點?如何捕獲特定Angular服務中的所有錯誤?

我知道$ exceptionHandler,但這太全球化了。我只想捕捉可能在我的跟蹤服務中發生的異常,這些異常會公開大約20種左右的方法,而無需爲每種方法重複代碼。

任何建議將不勝感激。

謝謝 新浪

回答

0

如果您的服務方式正在$http請求,您可以建立一個AngularJS HTTP Interceptor

本文的「攔截器」部分有一個非常好的示例,向您展示如何設置方法來捕獲任何$http請求和/或響應錯誤。

從這裏你可以處理你想如何反應和處理任何錯誤。

+0

我想捕獲所有的表決。可能導致異常的事情可以是任何事情。例如試圖訪問null或undefined參數的屬性。 即 ''' 功能trackProductImpression(項目){ dataLayer.push({ ID:item.id }) } ''' ,如果該項目是空這可以拋出異常。我希望能夠捕獲所有這些錯誤,而不是停止調用跟蹤服務的代碼。 – Sina

+0

從我對AngularJS的理解中,'$ exceptionHandler'是全局處理異常的唯一方式,HTTP攔截器是全局處理HTTP異常的唯一方法。 –

相關問題