Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
new-api
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
271830fc
authored
Sep 10, 2025
by
Xyfacai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: err 如果是 newApiErr 则保留
parent
3f9adc99
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
33 additions
and
4 deletions
+33
-4
relay/channel/api_request.go
+1
-2
types/error.go
+32
-2
No files found.
relay/channel/api_request.go
View file @
271830fc
...
@@ -264,9 +264,8 @@ func doRequest(c *gin.Context, req *http.Request, info *common.RelayInfo) (*http
...
@@ -264,9 +264,8 @@ func doRequest(c *gin.Context, req *http.Request, info *common.RelayInfo) (*http
}
}
resp
,
err
:=
client
.
Do
(
req
)
resp
,
err
:=
client
.
Do
(
req
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
types
.
NewError
(
err
,
types
.
ErrorCodeDoRequestFailed
,
types
.
ErrOptionWithHideErrMsg
(
"upstream error: do request failed"
))
}
}
if
resp
==
nil
{
if
resp
==
nil
{
return
nil
,
errors
.
New
(
"resp is nil"
)
return
nil
,
errors
.
New
(
"resp is nil"
)
...
...
types/error.go
View file @
271830fc
...
@@ -185,6 +185,14 @@ func (e *NewAPIError) ToClaudeError() ClaudeError {
...
@@ -185,6 +185,14 @@ func (e *NewAPIError) ToClaudeError() ClaudeError {
type
NewAPIErrorOptions
func
(
*
NewAPIError
)
type
NewAPIErrorOptions
func
(
*
NewAPIError
)
func
NewError
(
err
error
,
errorCode
ErrorCode
,
ops
...
NewAPIErrorOptions
)
*
NewAPIError
{
func
NewError
(
err
error
,
errorCode
ErrorCode
,
ops
...
NewAPIErrorOptions
)
*
NewAPIError
{
var
newErr
*
NewAPIError
// 保留深层传递的 new err
if
errors
.
As
(
err
,
&
newErr
)
{
for
_
,
op
:=
range
ops
{
op
(
newErr
)
}
return
newErr
}
e
:=
&
NewAPIError
{
e
:=
&
NewAPIError
{
Err
:
err
,
Err
:
err
,
RelayError
:
nil
,
RelayError
:
nil
,
...
@@ -199,8 +207,21 @@ func NewError(err error, errorCode ErrorCode, ops ...NewAPIErrorOptions) *NewAPI
...
@@ -199,8 +207,21 @@ func NewError(err error, errorCode ErrorCode, ops ...NewAPIErrorOptions) *NewAPI
}
}
func
NewOpenAIError
(
err
error
,
errorCode
ErrorCode
,
statusCode
int
,
ops
...
NewAPIErrorOptions
)
*
NewAPIError
{
func
NewOpenAIError
(
err
error
,
errorCode
ErrorCode
,
statusCode
int
,
ops
...
NewAPIErrorOptions
)
*
NewAPIError
{
if
errorCode
==
ErrorCodeDoRequestFailed
{
var
newErr
*
NewAPIError
err
=
errors
.
New
(
"upstream error: do request failed"
)
// 保留深层传递的 new err
if
errors
.
As
(
err
,
&
newErr
)
{
if
newErr
.
RelayError
==
nil
{
openaiError
:=
OpenAIError
{
Message
:
newErr
.
Error
(),
Type
:
string
(
errorCode
),
Code
:
errorCode
,
}
newErr
.
RelayError
=
openaiError
}
for
_
,
op
:=
range
ops
{
op
(
newErr
)
}
return
newErr
}
}
openaiError
:=
OpenAIError
{
openaiError
:=
OpenAIError
{
Message
:
err
.
Error
(),
Message
:
err
.
Error
(),
...
@@ -305,6 +326,15 @@ func ErrOptionWithNoRecordErrorLog() NewAPIErrorOptions {
...
@@ -305,6 +326,15 @@ func ErrOptionWithNoRecordErrorLog() NewAPIErrorOptions {
}
}
}
}
func
ErrOptionWithHideErrMsg
(
replaceStr
string
)
NewAPIErrorOptions
{
return
func
(
e
*
NewAPIError
)
{
if
common
.
DebugEnabled
{
fmt
.
Printf
(
"ErrOptionWithHideErrMsg: %s, origin error: %s"
,
replaceStr
,
e
.
Err
)
}
e
.
Err
=
errors
.
New
(
replaceStr
)
}
}
func
IsRecordErrorLog
(
e
*
NewAPIError
)
bool
{
func
IsRecordErrorLog
(
e
*
NewAPIError
)
bool
{
if
e
==
nil
{
if
e
==
nil
{
return
false
return
false
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment