I can declare extended Error class like:
class NotFoundError extends Error {
constructor (message) {
super(message)
this.name = 'NotFoundError' // for log
}
}
and then evaluate:
if (error instanceof NotFoundError) {
...
}
How can I declare many errors dynamically, preferably in ES5 syntax?
declareErrors(['NotFoundError', 'TimeoutError', 'AclError', ...])
Easy, use an anonymous class expression and assign it to a global variable:
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
);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加