fix: avoid relayError nil panic

This commit is contained in:
feitianbubu
2025-07-22 11:40:43 +08:00
parent e224ee5498
commit f32cf02714

View File

@@ -105,23 +105,25 @@ func (e *NewAPIError) SetMessage(message string) {
func (e *NewAPIError) ToOpenAIError() OpenAIError {
switch e.ErrorType {
case ErrorTypeOpenAIError:
return e.RelayError.(OpenAIError)
if openAIError, ok := e.RelayError.(OpenAIError); ok {
return openAIError
}
case ErrorTypeClaudeError:
claudeError := e.RelayError.(ClaudeError)
return OpenAIError{
Message: e.Error(),
Type: claudeError.Type,
Param: "",
Code: e.errorCode,
}
default:
return OpenAIError{
Message: e.Error(),
Type: string(e.ErrorType),
Param: "",
Code: e.errorCode,
if claudeError, ok := e.RelayError.(ClaudeError); ok {
return OpenAIError{
Message: e.Error(),
Type: claudeError.Type,
Param: "",
Code: e.errorCode,
}
}
}
return OpenAIError{
Message: e.Error(),
Type: string(e.ErrorType),
Param: "",
Code: e.errorCode,
}
}
func (e *NewAPIError) ToClaudeError() ClaudeError {
@@ -162,8 +164,11 @@ func NewOpenAIError(err error, errorCode ErrorCode, statusCode int) *NewAPIError
func NewErrorWithStatusCode(err error, errorCode ErrorCode, statusCode int) *NewAPIError {
return &NewAPIError{
Err: err,
RelayError: nil,
Err: err,
RelayError: OpenAIError{
Message: err.Error(),
Type: string(errorCode),
},
ErrorType: ErrorTypeNewAPIError,
StatusCode: statusCode,
errorCode: errorCode,