(err error, errorCode ErrorCode, statusCode int, ops ...NewAPIErrorOptions)
| 264 | } |
| 265 | |
| 266 | func NewOpenAIError(err error, errorCode ErrorCode, statusCode int, ops ...NewAPIErrorOptions) *NewAPIError { |
| 267 | var newErr *NewAPIError |
| 268 | // 保留深层传递的 new err |
| 269 | if errors.As(err, &newErr) { |
| 270 | if newErr.RelayError == nil { |
| 271 | openaiError := OpenAIError{ |
| 272 | Message: newErr.Error(), |
| 273 | Type: string(errorCode), |
| 274 | Code: errorCode, |
| 275 | } |
| 276 | newErr.RelayError = openaiError |
| 277 | } |
| 278 | for _, op := range ops { |
| 279 | op(newErr) |
| 280 | } |
| 281 | return newErr |
| 282 | } |
| 283 | openaiError := OpenAIError{ |
| 284 | Message: err.Error(), |
| 285 | Type: string(errorCode), |
| 286 | Code: errorCode, |
| 287 | } |
| 288 | return WithOpenAIError(openaiError, statusCode, ops...) |
| 289 | } |
| 290 | |
| 291 | func InitOpenAIError(errorCode ErrorCode, statusCode int, ops ...NewAPIErrorOptions) *NewAPIError { |
| 292 | openaiError := OpenAIError{ |
no test coverage detected