是否有关于何时抛出一般错误的指南,特别是在 Angular 应用程序中?
我正在考虑的用例:
1. 未提供组件所需的输入字段。
2. 未提供函数所需的参数(具体而言,在自定义验证器中,未提供 formControl)。
据我了解,这些错误不会被捕获。
最佳答案
您的问题主要基于意见。没有规则说明您是否应该使用异常(exception)。所以我什至不能说这个答案是正确的。
Are there any guidelines around when to throw errors in general and in particular in an Angular application?
没有指导方针。
Angular 有办法让你通过 ErrorHandler 监听未处理的错误。类,但抛出错误没有限制。
- The input fields required by a component has not been provided.
@Input()
注释没有必需的标志,但我希望它有。抛出异常取决于您,但很难知道是否设置了绑定(bind)。您可以检查属性的值或检查是否从未调用过 NgOnChange。
- The parameters required by a function have not been provided (and specifically, in custom validators, a formControl has not been provided). These errors won't be caught as I understand it.
与所有未处理的错误一样,它们会被转发到 ErrorHandler。您在类里面几乎无法实际处理错误。
如果需要参数,则抛出错误告诉程序员他们做错了。
副作用
如果您在 Angular 生命周期钩子(Hook)(这是大多数组件方法)期间抛出未处理的错误,则可能会破坏 Angular。应用程序很可能会进入不可恢复的状态。
根据我的经验,最佳实践是在 Observables 中抛出错误,并在其他任何地方尽可能优雅地处理不良数据。 Observables 似乎是 Angular 中唯一的错误安全域,因为我从未在 Observable 崩溃 Angular 中看到未处理的错误。
关于angular - 在 Angular 应用程序中抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51509403/