25 lines
639 B
Go
25 lines
639 B
Go
|
package website
|
||
|
|
||
|
import "fmt"
|
||
|
|
||
|
// A SafeError can be used to wrap another error and explicitly provide
|
||
|
// an error message that is safe to show to a user. This allows the original
|
||
|
// error to easily be logged and for servers to consistently return errors
|
||
|
// in a standard format, without having to worry about leaking sensitive
|
||
|
// info (assuming you use the right middleware!).
|
||
|
type SafeError struct {
|
||
|
Wrapped error
|
||
|
Msg string
|
||
|
}
|
||
|
|
||
|
func NewSafeError(err error, msg string, args ...interface{}) error {
|
||
|
return &SafeError{
|
||
|
Wrapped: err,
|
||
|
Msg: fmt.Sprintf(msg, args...),
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func (s *SafeError) Error() string {
|
||
|
return s.Msg
|
||
|
}
|