javascript - 如何动态扩展许多错误类?
问题描述
我可以声明扩展的错误类,如:
class NotFoundError extends Error {
constructor (message) {
super(message)
this.name = 'NotFoundError' // for log
}
}
然后评估:
if (error instanceof NotFoundError) {
...
}
如何动态声明许多错误,最好是在 ES5 语法中?
declareErrors(['NotFoundError', 'TimeoutError', 'AclError', ...])
解决方案
很简单,使用匿名类表达式并将其分配给全局变量:
function declareError(name) {
window[name] = class extends Error {
constructor (message) {
super(message)
this.name = name;
}
}
}
function declareErrors(errors) {
errors.forEach(declareError);
}
declareErrors(['NotFoundError', 'TimeoutError', 'AclError']);
const error = new AclError("Bad Darius!");
console.log(
error.name,
error.message,
error instanceof Error,
error instanceof AclError
);
推荐阅读
- netsuite - 已保存交易搜索的重复项
- android - Android:请求存储权限后的闪屏问题
- mysql - SQL 如果条件为真,只计算一次
- tensorflow - 如何在张量流中使用估计器绘制我的评估损失?
- javascript - 单击#item时避免div跳转到顶部
- r - dplyr 领先/落后于 group_by
- javascript - javascript 绑定函数未在第一次操作时触发
- javascript - 当时间动态时,相同的位置对于相同的 x、y、z 或 lat、long、height 显示不同
- php - 不使用 Artisan 链接存储文件夹
- windows - Anaconda中缺少graphlab安装依赖项