Angular - 如何在组件级别实现异常处理

时间:2018-01-22 11:32:32

标签: javascript angular reactjs

在Angular(Angular 4,5)中工作时,如果组件引发错误(TypeError或null或未定义错误等),则整个应用程序会中断。

我们如何解决这个问题,捕获组件级错误并可能显示回退用户界面,例如React16使用Error Boundaries

1 个答案:

答案 0 :(得分:0)

我将通过在组件级别处理错误并提供一种服务来侦听在组件或服务级别发生的任何错误的方法。 例如:

  1. 从服务中抛出错误
  2. 捕获组件中的错误
  3. 处理错误,对其进行处理,然后将Error事件及其详细信息发送给ErrorService。
  4. 您可以拥有一个应用程序级别组件“ errorBannerComponent”,该组件可从ErrorService接收输入并绘制您的UI。
  5. 在ErrorService中收到错误后,errorBannerComponent应该在屏幕上显示错误。

希望有帮助。

  

还默认情况下,Angular带有自己的ErrorHandler   拦截我们应用程序中发生的所有错误,并将它们记录到   控制台,以防止应用崩溃。我们可以通过创建实现ErrorHandler的新类来修改此默认行为:

您可以找到更多详细信息,example here: