1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
package errors
import (
"errors"
"fmt"
)
// fatalError is an error that should be printed to the user, then the program
// should exit with an error code.
type fatalError string
func (e fatalError) Error() string {
return string(e)
}
// IsFatal returns true if err is a fatal message that should be printed to the
// user. Then, the program should exit.
func IsFatal(err error) bool {
var fatal fatalError
return errors.As(err, &fatal)
}
// Fatal returns an error that is marked fatal.
func Fatal(s string) error {
return Wrap(fatalError(s), "Fatal")
}
// Fatalf returns an error that is marked fatal.
func Fatalf(s string, data ...interface{}) error {
return Wrap(fatalError(fmt.Sprintf(s, data...)), "Fatal")
}
|