 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
- Variables
- func PrintAndReturnErrors(err error, printer func(string, ...interface{})) error
- type Error
- func (e Error) Append(format string, a ...interface{}) Error
- func (e Error) AppendErr(err error) Error
- func (e Error) AppendInline(format string, a ...interface{}) Error
- func (e Error) Empty() bool
- func (e Error) Equal(e2 Error) bool
- func (e Error) Error() string
- func (e Error) Format(a ...interface{}) Error
- func (e Error) HasStack() bool
- func (e Error) NotEmpty() bool
- func (e Error) Panic()
- func (e Error) Panicf(args ...interface{})
- func (e Error) String() string
- func (e Error) With(err error) error
 
- type Reporter
- func (r *Reporter) Add(format string, a ...interface{})
- func (r *Reporter) AddErr(err error)
- func (r *Reporter) Describe(format string, err error)
- func (r Reporter) Error() string
- func (r Reporter) PrintStack(printer func(string, ...interface{})) error
- func (r Reporter) Return() error
- func (r Reporter) Stack() []Error
 
- type StackError
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var (
	// Prefix the error prefix, applies to each error's message.
	Prefix = ""
)
    Functions ¶
Types ¶
type Error ¶
type Error struct {
	// ID returns the unique id of the error, it's needed
	// when we want to check if a specific error returned
	// but the `Error() string` value is not the same because the error may be dynamic
	// by a `Format` call.
	ID string `json:"id"`
	// The message of the error.
	Message string `json:"message"`
	// Apennded is true whenever it's a child error.
	Appended bool `json:"appended"`
	// Stack returns the list of the errors that are shown at `Error() string`.
	Stack []Error `json:"stack"` // filled on AppendX.
}
    Error holds the error message, this message never really changes
Example ¶
package main
import (
	"fmt"
	"github.com/go-siris/siris/core/errors"
)
var errMessage = "User with mail: %s already exists"
var errUserAlreadyExists = errors.New(errMessage)
var userMail = "user1@mail.go"
func main() {
	fmt.Print(errUserAlreadyExists.Format(userMail).Append("Please change your mail addr"))
}
Output: User with mail: user1@mail.go already exists Please change your mail addr
func New ¶
New creates and returns an Error with a pre-defined user output message all methods below that doesn't accept a pointer receiver because actually they are not changing the original message
func (Error) Append ¶
Append adds a message to the predefined error message and returns a new error it does NOT change the original error's message
func (Error) AppendErr ¶
AppendErr adds an error's message to the predefined error message and returns a new error. it does NOT change the original error's message
func (Error) AppendInline ¶
AppendInline appends an error to the stack. It doesn't try to append a new line if needed.
func (Error) Empty ¶
Empty returns true if the "e" Error has no message on its stack.
func (Error) Equal ¶
Equal returns true if "e" and "e2" are matched, by their IDs. It will always returns true if the "e2" is a children of "e" or the error messages are exactly the same, otherwise false.
func (Error) Error ¶
Error returns the message of the actual error implements the error
func (Error) Format ¶
Format returns a formatted new error based on the arguments it does NOT change the original error's message
func (Error) HasStack ¶
HasStack returns true if the Error instance is created using Append/AppendInline/AppendErr funcs.
func (Error) NotEmpty ¶
NotEmpty returns true if the "e" Error has got a non-empty message on its stack.
type Reporter ¶
type Reporter struct {
	// contains filtered or unexported fields
}
    Reporter is a helper structure which can stack errors and prints them to a printer of func(string).
func (*Reporter) Add ¶
Add adds a formatted message as an error to the error stack.
func (*Reporter) AddErr ¶
AddErr adds an error to the error stack. if "err" is a StackError then each of these errors will be printed as individual.
func (*Reporter) Describe ¶
Describe same as `Add` but if "err" is nil then it does nothing.
func (Reporter) Error ¶
Error implements the error, returns the full error string.
func (Reporter) PrintStack ¶
PrintStack prints all the errors to the given "printer". Returns itself in order to be used as printer and return the full error in the same time.
func (Reporter) Return ¶
Return returns nil if the error is empty, otherwise returns the full error.
       Source Files
      ¶
      Source Files
      ¶
    
- errors.go
- reporter.go