Put wrapped errors into the detailed field on serialization (#20846)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
53985ef162
Коммит
e665542c91
@@ -265,10 +265,30 @@ func (er *AppError) SystemMessage(T i18n.TranslateFunc) string {
|
||||
}
|
||||
|
||||
func (er *AppError) ToJSON() string {
|
||||
// turn the wrapped error into a detailed message
|
||||
detailed := er.DetailedError
|
||||
defer func() {
|
||||
er.DetailedError = detailed
|
||||
}()
|
||||
|
||||
er.wrappedToDetailed()
|
||||
|
||||
b, _ := json.Marshal(er)
|
||||
return string(b)
|
||||
}
|
||||
|
||||
func (er *AppError) wrappedToDetailed() {
|
||||
if er.wrapped == nil {
|
||||
return
|
||||
}
|
||||
|
||||
if er.DetailedError != "" {
|
||||
er.DetailedError += ", "
|
||||
}
|
||||
|
||||
er.DetailedError += er.wrapped.Error()
|
||||
}
|
||||
|
||||
func (er *AppError) Unwrap() error {
|
||||
return er.wrapped
|
||||
}
|
||||
|
||||
Ссылка в новой задаче
Block a user