41 lines
903 B
TypeScript
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 }
|