54 lines
1.6 KiB
JavaScript
54 lines
1.6 KiB
JavaScript
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)},
|
|
}
|