在一般情况下,尤其是在Angular应用程序中,何时抛出错误是否有任何准则? 我正在考虑的用例: 1.尚未提供组件所需的输入字段。 2.未提供函数所需的参数(特别是在自定义验证器中,未提供formControl)。 据我了解,不会发现这些错误。
答案 0 :(得分:0)
您的问题主要基于观点。没有规则说明是否应该使用异常。所以我什至不能说这个答案是正确的。
在一般情况下,尤其是在Angular应用程序中,何时抛出错误是否有任何准则?
没有指导原则。
Angular允许您通过ErrorHandler类侦听未处理的错误,但是对抛出错误没有任何限制。
- 未提供组件所需的输入字段。
@Input()
批注没有 required 标志,但我希望它有。
由您自己决定是否要引发异常,但是很难知道是否设置了绑定。您可以检查属性的值,或者检查是否从未调用过NgOnChange。
- 未提供函数所需的参数(特别是在自定义验证器中,未提供formControl)。据我了解,不会发现这些错误。
与所有未处理的错误一样,它们也被转发到ErrorHandler。在该类中,您几乎无能为力地处理错误。
如果需要参数,则抛出错误告诉程序员他们做错了事。
如果您在Angular生命周期挂钩(这是大多数组件方法)中抛出未处理的错误,则可能会损坏Angular。该应用程序可能会进入不可恢复的状态。
根据我的经验,最佳实践是在Observables中抛出错误,并在其他地方尽可能妥善地处理不良数据。 Observable似乎是Angular内唯一的错误安全域,因为我从未见过Observable崩溃Angular内有未处理的错误。