【问题标题】:Catch exceptions from third party directives used in template从模板中使用的第三方指令中捕获异常
【发布时间】:2019-04-11 20:16:29
【问题描述】:

我在我的 Angular 应用程序中使用 angular-google-charts 库。
我在模板中使用它:

<google-chart
  [title]="chart.title"
  [type]="chart.type"
  [data]="chart.data">
</google-chart>

如果用户离线,google-chart 会抛出异常,因为需要互联网连接。我通过将指令包装在*ngIf 中解决了这个问题,并检查了是否存在网络连接或更少。

但是,在更通用的上下文中,我如何从仅在模板中使用的第三方指令中捕获异常?

全局错误处理是唯一的可能性吗?

【问题讨论】:

    标签: angular error-handling angular2-template angular-directive


    【解决方案1】:

    恐怕是这样。您可以在ErrorHandler btw 中操作一些过滤,根据具体的库异常。 如果第三方应用程序声明了特定的异常,您可以通过instanceof ThirdPartyExceptionType 进行检查。

    import { Injectable, ErrorHandler } from '@angular/core';
    import { ThirdPartyExceptionType } from 'thirdpartylibrary';
    
    export class CustomErrorHandler implements ErrorHandler {
      handleError(error: Error | ThirdPartyExceptionType ) {   
       if (error instanceof ThirdPartyExceptionType ) {
          // do something
       } else {
         // do something else
       }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-01-21
      • 2016-08-12
      • 1970-01-01
      • 2021-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-13
      相关资源
      最近更新 更多