mirror of
https://github.com/kaspanet/kaspad.git
synced 2026-02-21 03:03:08 +00:00
[NOD-398] Change API server type HandlerError to work with errors instead of error strings (#454)
* [NOD-398] Change API server type HandlerError to work with errors instead of error strings * [NOD-398] Rename OriginalError -> Cause and isHandleError -> ok
This commit is contained in:
@@ -2,6 +2,7 @@ package httpserverutils
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/pkg/errors"
|
||||
"net/http"
|
||||
"runtime/debug"
|
||||
)
|
||||
@@ -38,10 +39,16 @@ func RecoveryMiddleware(h http.Handler) http.Handler {
|
||||
defer func() {
|
||||
recoveryErr := recover()
|
||||
if recoveryErr != nil {
|
||||
var recoveryErrAsError error
|
||||
if rErr, ok := recoveryErr.(error); ok {
|
||||
recoveryErrAsError = rErr
|
||||
} else {
|
||||
recoveryErrAsError = errors.Errorf("%s", recoveryErr)
|
||||
}
|
||||
recoveryErrStr := fmt.Sprintf("%s", recoveryErr)
|
||||
log.Criticalf("Fatal error: %s", recoveryErrStr)
|
||||
log.Criticalf("Fatal error: %+v", recoveryErrStr)
|
||||
log.Criticalf("Stack trace: %s", debug.Stack())
|
||||
SendErr(ctx, w, NewInternalServerHandlerError(recoveryErrStr))
|
||||
SendErr(ctx, w, recoveryErrAsError)
|
||||
}
|
||||
}()
|
||||
h.ServeHTTP(w, r)
|
||||
|
||||
Reference in New Issue
Block a user