node-web-mvc
Version:
node spring mvc
36 lines (35 loc) • 1.88 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const ValueConvertError_1 = __importDefault(require("../../../errors/ValueConvertError"));
const ArgumentResolvError_1 = __importDefault(require("../../../errors/ArgumentResolvError"));
const HttpStatusError_1 = __importDefault(require("../../../errors/HttpStatusError"));
const ParameterRequiredError_1 = __importDefault(require("../../../errors/ParameterRequiredError"));
const HttpStatus_1 = __importDefault(require("../../http/HttpStatus"));
const ModelAndView_1 = __importDefault(require("../../models/ModelAndView"));
const NoHandlerFoundException_1 = __importDefault(require("../../../errors/NoHandlerFoundException"));
class DefaultHandlerExceptionResolver {
isType(error, ...errorTypes) {
return errorTypes.find((errorType) => errorType && error instanceof errorType);
}
async resolveException(servletContext, handler, error) {
if (this.isType(error, ArgumentResolvError_1.default, ValueConvertError_1.default, ParameterRequiredError_1.default)) {
servletContext.response.sendError(HttpStatus_1.default.BAD_REQUEST);
return new ModelAndView_1.default();
}
else if (error instanceof HttpStatusError_1.default) {
servletContext.response.sendError(error.status);
return new ModelAndView_1.default();
}
else if (error instanceof NoHandlerFoundException_1.default) {
servletContext.response.sendError(HttpStatus_1.default.NOT_FOUND);
}
else {
servletContext.response.sendError(HttpStatus_1.default.INTERNAL_SERVER_ERROR);
}
return null;
}
}
exports.default = DefaultHandlerExceptionResolver;