| import assert from 'assert'; |
|
|
| import _ from 'lodash'; |
|
|
| export default class Exception extends Error { |
|
|
| |
| errcode: number; |
| |
| errmsg: string; |
| |
| data: any; |
| |
| httpStatusCode: number; |
|
|
| |
| |
| |
| |
| |
| |
| constructor(exception: (string | number)[], _errmsg?: string) { |
| assert(_.isArray(exception), 'Exception must be Array'); |
| const [errcode, errmsg] = exception as [number, string]; |
| assert(_.isFinite(errcode), 'Exception errcode invalid'); |
| assert(_.isString(errmsg), 'Exception errmsg invalid'); |
| super(_errmsg || errmsg); |
| this.errcode = errcode; |
| this.errmsg = _errmsg || errmsg; |
| } |
|
|
| compare(exception: (string | number)[]) { |
| const [errcode] = exception as [number, string]; |
| return this.errcode == errcode; |
| } |
|
|
| setHTTPStatusCode(value: number) { |
| this.httpStatusCode = value; |
| return this; |
| } |
|
|
| setData(value: any) { |
| this.data = _.defaultTo(value, null); |
| return this; |
| } |
|
|
| } |