werr: github.com/txgruppi/werr Index | Files

package werr

import "github.com/txgruppi/werr"


Package Files

funcs.go vars.go wrapper.go


var (
    // StackArraySize defines the number of bytes which will be allocated for the
    // stack trace.
    // Any value `<= 0` will result in not creating the stack trace.
    StackArraySize = 512

    // LogLine is the format used by `*Wrapper.Log()`.
    // It should be a valid `text/template` string.
    // The data passed to the `Execute` method of the template is the `*Wrapper`
    // instance, which means that you can use all `*Wrapper` methods and
    // attributes inside the template.
    LogLine = "{{.File}}:{{.Line}} {{.Original.Error}}\n{{printf \"%s\" .Stack}}\n\n"

func Unwrap Uses

func Unwrap(err error) error

Unwrap returns the original error inside an `*Wrapper` instance. If `err` is `nil` it will return `nil`. If `err` is an instance of `*Wrapper` it will return the value of the `Original` attribute. Anything else will be returned without any modification.

func Wrap Uses

func Wrap(err error) error

Wrap creates an `*Wrapper` instance with the file, line and stack trace of the moment when it is called. If `StackArraySize` is `<= 0` the stack trace will not be generated. If `err` is `nil` it will return `nil`. If `err` is an `*Wrapper` it will return the same `err` variable. Anything else will be put in the `Original` attribute of `*Wrapper`

type Wrapper Uses

type Wrapper struct {
    Original error
    File     string
    Line     int
    Stack    []byte

Wrapper is the struct which holds the `Original` error and the data related to this error. You should not create an instance of `*Wrapper` by yourself, you should call the `Wrap` function, which will set all the values for you automatically.

func (*Wrapper) Error Uses

func (w *Wrapper) Error() string

func (*Wrapper) Log Uses

func (w *Wrapper) Log() (string, error)

Log returns an string which is created by `LogLine` execution. If can return an error if any template-related function returns an error.

Package werr imports 3 packages (graph). Updated 2016-07-29. Refresh now. Tools for package owners. This is an inactive package (no imports and no commits in at least two years).