У меня есть несколько пользовательских классов ошибок
GenericError.js
import { errorCodes, errorMessages } from './errorConstants';
class GenericError extends Error {
constructor(message = errorMessages.UNKNOWN, code = errorCodes.UNKNOWN, description) {
super();
Error.captureStackTrace(this, this.constructor);
this.name = this.constructor.name;
this.message = message;
this.code = code;
this.description = description;
}
stringify() {
return JSON.stringify({
error : {
message: this.message || "Unknown Error.",
code: this.code,
description: this.description
},
})
}
}
export default GenericError;
NotFoundError.js
import GenericError from "./GenericError";
import {errorMessages, errorCodes} from "./errorConstants";
class NotFoundError extends GenericError {
constructor(message = errorMessages.NOT_FOUND, code = errorCodes.NOT_FOUND, description = "Not Found.") {
super(message, code, description);
this.name = this.constructor.name;
}
}
export default NotFoundError;
Однако, когда я использую эту функцию
firebaseUtils.getInfo(user)
.then((info) => {
const infoSnapshot = info || {};
if (//some logic here) {
throw new NotFoundError();
}
response.send(JSON.stringify(infoSnapshot));
})
.catch((error) => {
if(error.name === "NotFoundError") {
response.status(error.getCode).send(error.stringify());
return;
}
})
Когда я выбрасываю новый NotFoundError(), по какой-то причине error.name имеет значение Error
вместо NotFoundError
, а stringify не является функцией?
Кто-нибудь может сказать мне, что не так?
РЕДАКТИРОВАТЬ: Удален машинописный текст из моего кода, и он не работает!
PidNotFoundError
вNotFoundError
или они разные, если разные то гдеNotFoundError
класс? - person Bk Santiago   schedule 01.03.2018