angular - 捕获模板中使用的第三方指令的异常

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

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

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

如果用户离线,则由于需要互联网连接,因此Google-Chart会抛出异常。我通过将指令包装在*ngIf中来解决此问题,并检查是否存在网络连接或更少的网络连接。
但是,在更通用的上下文中,如何捕获仅在模板中使用的第三方指令的异常?

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

最佳答案

我想恐怕是的。您可以根据特定的库异常在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
   }
}

关于angular - 捕获模板中使用的第三方指令的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53205761/

相关文章:

html - 如何在 HTML 模板中使用 let?

android - 错误:(45, 36) error: cannot find symbol method findViewbyId(int)

javascript - *ngFor 如何使用 Angular 2 中的模板变量?

javascript - 使用外部 javascript lib footable 时丢失 Angular 2 中的点击事件

arrays - 如何在 Angular 4 中将对象转换为数组?

angular - 我如何使用 @ContentChildren 并只呈现特定的子组件而不是所有子组件?

angular - 如何在 *ngIf 中捕获路由

haskell - 实践中的错误catchError

php - 以JSON格式返回验证错误消息-Laravel 6

html - angular 2 - primeng 有一个单独的行用于过滤器而不是内部标题