pkg/extensionerrors/errorhelper.go (29 lines of code) (raw):
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT License.
package extensionerrors
import (
"fmt"
"github.com/pkg/errors"
"runtime/debug"
)
func AddStackToError(err error) error {
if err == nil {
return nil
}
stackString := string(debug.Stack())
return fmt.Errorf("%+v\nCallStack: %s", err, stackString)
}
func NewErrorWithStack(errString string) error {
stackString := string(debug.Stack())
return fmt.Errorf("%s\nCallStack: %s", errString, stackString)
}
func CombineErrors(err1 error, err2 error) error {
if err1 == nil && err2 == nil {
return nil
}
if err1 != nil && err2 == nil {
return err1
}
if err1 == nil && err2 != nil {
return err2
}
return errors.Wrap(err1, err2.Error())
}