oa_based/src/common/exceptions/biz.exception.ts

41 lines
903 B
TypeScript

import { HttpException, HttpStatus } from '@nestjs/common'
import { ErrorEnum } from '~/constants/error-code.constant'
import { RESPONSE_SUCCESS_CODE } from '~/constants/response.constant'
export class BusinessException extends HttpException {
private errorCode: number
constructor(error: ErrorEnum | string) {
// 如果是非 ErrorEnum
if (!error.includes(':')) {
super(
HttpException.createBody({
code: RESPONSE_SUCCESS_CODE,
message: error,
}),
HttpStatus.OK,
)
this.errorCode = RESPONSE_SUCCESS_CODE
return
}
const [code, message] = error.split(':')
super(
HttpException.createBody({
code,
message,
}),
HttpStatus.OK,
)
this.errorCode = Number(code)
}
getErrorCode(): number {
return this.errorCode
}
}
export { BusinessException as BizException }