Angular 如何抓住;“未定义”;角度误差6

Angular 如何抓住;“未定义”;角度误差6,angular,typescript,angular6,Angular,Typescript,Angular6,我正在试图找到一种方法来处理组件模板中抛出的未定义错误。当出现这种情况时,应用程序将中断,理想的解决方案是导航到“应用程序错误”组件或用“应用程序错误”组件替换出现错误的组件,以便应用程序保持正常运行状态 您可以在代码中使用try/catch块,但在更大的应用程序中进行管理可能会很繁琐。相反,您可以通过从@angular/core扩展ErrorHandler来创建自己的错误处理逻辑 像这样的东西 import { ErrorHandler } from '@angular/core'; @In

我正在试图找到一种方法来处理组件模板中抛出的未定义错误。当出现这种情况时,应用程序将中断,理想的解决方案是导航到“应用程序错误”组件或用“应用程序错误”组件替换出现错误的组件,以便应用程序保持正常运行状态

您可以在代码中使用try/catch块,但在更大的应用程序中进行管理可能会很繁琐。相反,您可以通过从@angular/core扩展ErrorHandler来创建自己的错误处理逻辑

像这样的东西

import { ErrorHandler } from '@angular/core';

@Injectable()
export class YourErrorHandler implements ErrorHandler {

  handleError(error) {
    // your custom error handling logic    
  }
}
@NgModule({   
  providers: [{provide: ErrorHandler, useClass: GlobalErrorHandler}]
})
然后,像这样将其添加到根模块中

import { ErrorHandler } from '@angular/core';

@Injectable()
export class YourErrorHandler implements ErrorHandler {

  handleError(error) {
    // your custom error handling logic    
  }
}
@NgModule({   
  providers: [{provide: ErrorHandler, useClass: GlobalErrorHandler}]
})

没有通用的方法可以在一个位置捕获所有
未定义的
。
当您编写的代码不安全或/或不够干净时,就会发生此错误

一些良好做法领域:

  • 初始化值
  • 仅在未定义或null或两者都未定义时设置值
  • 检查对象路径的

  • 示例请参见此处:

    对于component.html模板文件中出现的错误,此方法也适用吗?否,不适用!唯一的方法就是编写干净的代码!感谢您的回复,我正在寻找一种方法来发现生产中可能遗漏的问题,我们已经遵守了所有这些干净的编码标准谢谢您的回复,我正在寻找一种方法来发现生产中可能遗漏的问题,我们已经遵守了所有这些干净的编码标准。几天前,我在一个很好的方向上进行了研究,也许其中一个主题可以帮助您: