异常类型
Keq 提供了一套内置的异常类型,用于处理不同场景下的请求错误。这些异常类继承自标准的 JavaScript 错误类,提供了更精确的错误分类和处理能力。
RequestException
请求异常的基类,用于表示 HTTP 请求过程中发生的错误。
class RequestException extends Error {
constructor(
statusCode: number,
message?: string,
options?: { fatal?: boolean, response?: Response } = {},
)
}参数说明:
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| statusCode | number | - | HTTP 状态码 |
| message | string | - | 错误消息 |
| options.fatal | boolean | false | 设置为 true 可以终止重试机制 |
| options.response | Response | - | 关联的 Response 对象(如果有的话) |
AbortException
继承自 DOMException,当请求被主动中止时抛出。
class AbortException extends DOMException {
constructor(message?: string)
}| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| message | string | - | 错误消息 |
TimeoutException
继承自 AbortException,当请求超时时抛出。通常由 .timeout() 方法触发。
class TimeoutException extends AbortException {
constructor(message?: string)
}| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| message | string | - | 错误消息 |
MutexException
当请求被 mutex 并发控制拦截时抛出。表示同一队列中已有请求正在执行,新请求被拒绝。
class MutexException extends Exception {
constructor(message?: string)
}| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| message | string | - | 错误消息 |
TypeException
参数类型错误异常,类似于标准的 TypeError,用于标识参数传递错误。
class TypeException extends TypeError {}信息
在 TypeScript 项目中,通常不会遇到此异常,因为 TypeScript 编译器会在编译时捕获类型错误。此异常主要用于运行时类型检查或纯 JavaScript 项目。
HTTP 状态码异常
Keq 提供了常见的 HTTP Exception,均继承自 RequestException:
| 异常类名 | 状态码 |
|---|---|
BadRequestException | 400 |
UnauthorizedException | 401 |
ForbiddenException | 403 |
NotFoundedException | 404 |
MethodNotAllowedException | 405 |
NotAcceptableException | 406 |
ProxyAuthenticationRequiredException | 407 |
RequestTimeoutException | 408 |
ConflictException | 409 |
PreconditionFailedException | 412 |
ContentTooLargeException | 413 |
UriTooLongException | 414 |
UnsupportedMediaTypeException | 415 |
ImATeapotException | 418 |
TooManyRequestsException | 429 |
InternalServerErrorException | 500 |
NotImplementedException | 501 |
BadGatewayException | 502 |
ServiceUnavailableException | 503 |
GatewayTimeoutException | 504 |