(err error, errorCode ErrorCode, ops ...NewAPIErrorOptions)
| 242 | type NewAPIErrorOptions func(*NewAPIError) |
| 243 | |
| 244 | func NewError(err error, errorCode ErrorCode, ops ...NewAPIErrorOptions) *NewAPIError { |
| 245 | var newErr *NewAPIError |
| 246 | // 保留深层传递的 new err |
| 247 | if errors.As(err, &newErr) { |
| 248 | for _, op := range ops { |
| 249 | op(newErr) |
| 250 | } |
| 251 | return newErr |
| 252 | } |
| 253 | e := &NewAPIError{ |
| 254 | Err: err, |
| 255 | RelayError: nil, |
| 256 | errorType: ErrorTypeNewAPIError, |
| 257 | StatusCode: http.StatusInternalServerError, |
| 258 | errorCode: errorCode, |
| 259 | } |
| 260 | for _, op := range ops { |
| 261 | op(e) |
| 262 | } |
| 263 | return e |
| 264 | } |
| 265 | |
| 266 | func NewOpenAIError(err error, errorCode ErrorCode, statusCode int, ops ...NewAPIErrorOptions) *NewAPIError { |
| 267 | var newErr *NewAPIError |
no outgoing calls
no test coverage detected