27 lines
804 B
Plaintext
27 lines
804 B
Plaintext
/**
|
|
* 统一错误模型:业务错误码 / HTTP 状态码 / 网络异常。
|
|
* 继承 Error 以符合 ArkTS 的 throw 限制(只能抛 Error 及其子类)。
|
|
*/
|
|
export class ApiError extends Error {
|
|
readonly code: number;
|
|
readonly isNetworkError: boolean;
|
|
|
|
constructor(code: number, message: string, isNetworkError: boolean = false) {
|
|
super(message);
|
|
this.code = code;
|
|
this.isNetworkError = isNetworkError;
|
|
}
|
|
|
|
static network(detail: string): ApiError {
|
|
return new ApiError(-1, `网络请求失败: ${detail}`, true);
|
|
}
|
|
|
|
static http(statusCode: number): ApiError {
|
|
return new ApiError(statusCode, `HTTP 状态码异常: ${statusCode}`, false);
|
|
}
|
|
|
|
static business(code: number, message: string): ApiError {
|
|
return new ApiError(code, message, false);
|
|
}
|
|
}
|