class HttpException extends Error { // message为异常信息,code 为错误码(开发人员内部约定),status 为HTTP状态码 constructor(message, code, status) { super() this.status = status || 500 this.code = code || 500 this.message = message || '服务器异常' } } class ParameterException extends HttpException { constructor(message, code, status) { super() this.status = status || 402 this.code = code this.message = message || '参数错误' } } class NotFound extends HttpException { constructor(message, code, status) { super() this.status = status || 404 this.code = 404 this.message = message || '资源未找到' } } class AuthFailed extends HttpException { constructor(message, code, status) { super() this.status = status || 401 this.message = message || '授权失败' this.code = 401 } } class Forbidden extends HttpException { constructor(message, code, status) { super() this.status = status || 403 this.message = message || '禁止访问' this.code = 403 } } module.exports = { HttpException: (message, code, status) => {throw new HttpException(message, code, status)}, ParameterException: (message, code, status) => {throw new ParameterException(message, code, status)}, NotFound: (message, code, status) => {throw new NotFound(message, code, status)}, AuthFailed: (message, code, status) => {throw new AuthFailed(message, code, status)}, Forbidden: (message, code, status) => {throw new Forbidden(message, code, status)}, }