/Godeps/_workspace/src/github.com/iris-contrib/errors/error.go
https://github.com/beyondblog/k8s-web-terminal · Go · 72 lines · 48 code · 13 blank · 11 comment · 6 complexity · 99385c44dc173ae863a99a5146a56ca2 MD5 · raw file
- package errors
- import (
- "fmt"
- "runtime"
- "github.com/beyondblog/k8s-web-terminal/Godeps/_workspace/src/github.com/kataras/iris/logger"
- )
- // Error holds the error
- type Error struct {
- message string
- }
- // Error returns the message of the actual error
- func (e *Error) Error() string {
- return e.message
- }
- // Format returns a formatted new error based on the arguments
- func (e *Error) Format(args ...interface{}) error {
- return fmt.Errorf(e.message, args...)
- }
- // With does the same thing as Format but it receives an error type which if it's nil it returns a nil error
- func (e *Error) With(err error) error {
- if err == nil {
- return nil
- }
- return e.Format(err.Error())
- }
- // Return returns the actual error as it is
- func (e *Error) Return() error {
- return e.Format()
- }
- // Panic output the message and after panics
- func (e *Error) Panic() {
- if e == nil {
- return
- }
- _, fn, line, _ := runtime.Caller(1)
- errMsg := e.message
- errMsg = "\nCaller was: " + fmt.Sprintf("%s:%d", fn, line)
- panic(errMsg)
- }
- // Panicf output the formatted message and after panics
- func (e *Error) Panicf(args ...interface{}) {
- if e == nil {
- return
- }
- _, fn, line, _ := runtime.Caller(1)
- errMsg := e.Format(args...).Error()
- errMsg = "\nCaller was: " + fmt.Sprintf("%s:%d", fn, line)
- panic(errMsg)
- }
- //
- // New creates and returns an Error with a message
- func New(errMsg string) *Error {
- // return &Error{fmt.Errorf("\n" + logger.Prefix + "Error: " + errMsg)}
- return &Error{message: "\n" + logger.Prefix + " Error: " + errMsg}
- }
- // Printf prints to the logger a specific error with optionally arguments
- func Printf(logger *logger.Logger, err error, args ...interface{}) {
- logger.Printf(err.Error(), args...)
- }