【发布时间】:2020-10-19 08:58:26
【问题描述】:
假设我有课
class Foo {
doSomething() { throw 'error'; }
doOtherthing() { throw 'error2'; }
handleError(e) {}
}
是否有任何实现可以自动拦截/捕获此类中发生的任何错误并将其重定向到错误处理方法,在本例中为handleError()
例如
const foo = new Foo()
foo.doSomething()
这应该触发errorHandler()。 Angular 有这样的实现,我不确定它是如何完成的。
【问题讨论】:
-
没有 Javascript 类没有通用的 handleError 方法。 Angular 有这样的实现 angular 是框架而不是语言。
-
那么如果我想制作一个具有这种能力的框架,有什么建议呢?
-
是的,你可以这样做。如果你想知道如何,那很大程度上取决于这个“框架”是什么,它做什么以及它是如何工作的。最终,这就像在顶层添加
try {} catch{}一样简单 -
您可以建议任何实施方向吗?从角度来看,框架中发生的任何错误都可以使用已注册的 ErrorHandler 捕获。据我了解,try catch 可能适用于初始化。初始化后发生的其他方法调用呢?应该编写一个模式来实现这一点。
-
我们已经在这里得到了相当合理的答案