AimuxException.fromCode constructor
AimuxException.fromCode(})
Dispatch code → concrete subclass (defaults for status when -1).
Implementation
factory AimuxException.fromCode(
int code,
String message, {
int status = -1,
int retryMs = -1,
bool retryable = false,
}) {
switch (code) {
case AimuxErrorCode.jsonParse:
return JSONParseError(message, status: status, retryMs: retryMs, retryable: retryable);
case AimuxErrorCode.invalidResponseData:
return InvalidResponseDataError(message, status: status, retryMs: retryMs, retryable: retryable);
case AimuxErrorCode.invalidArgument:
return InvalidArgumentError(message, status: status, retryMs: retryMs, retryable: retryable);
case AimuxErrorCode.invalidPrompt:
return InvalidPromptError(message, status: status, retryMs: retryMs, retryable: retryable);
case AimuxErrorCode.tokenExpired:
return TokenExpiredError(
message,
status: status == -1 ? 401 : status,
retryMs: retryMs,
retryable: retryable,
);
case AimuxErrorCode.unsupportedFunctionality:
return UnsupportedFunctionalityError(message, status: status, retryMs: retryMs, retryable: retryable);
case AimuxErrorCode.noSuchModel:
return NoSuchModelError(message, status: status, retryMs: retryMs, retryable: retryable);
case AimuxErrorCode.noSuchProvider:
return NoSuchProviderError(message, status: status, retryMs: retryMs, retryable: retryable);
case AimuxErrorCode.apiCall:
return APICallError(message, status: status, retryMs: retryMs, retryable: retryable);
case AimuxErrorCode.retry:
// The real decode path ([_decode]) rebuilds the attempt history via
// the retry getters; a bare code carries only its message.
return RetryError(
message,
reason: RetryErrorReason.maxRetriesExceeded,
errors: [OtherError(message)],
);
case AimuxErrorCode.timeout:
return AimuxTimeoutError(message, status: status, retryMs: retryMs, retryable: retryable);
case AimuxErrorCode.aborted:
return RequestAbortedError(message, status: status, retryMs: retryMs, retryable: retryable);
case AimuxErrorCode.noSuchTool:
return NoSuchToolError(message, status: status, retryMs: retryMs, retryable: retryable);
case AimuxErrorCode.invalidToolInput:
return InvalidToolInputError(message, status: status, retryMs: retryMs, retryable: retryable);
case AimuxErrorCode.toolCallRepair:
return ToolCallRepairError(message, status: status, retryMs: retryMs, retryable: retryable);
case AimuxErrorCode.other:
return OtherError(message, status: status, retryMs: retryMs, retryable: retryable);
default:
throw StateError('Unknown AimuxErrorCode: $code');
}
}