Skip to content

Vanclief/ez

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ez

Package ez provides an opinionated, simple way to manage errors in Golang. Based on this awesome post.

Features

  • Extremely simple to use.

  • Allows nesting errors, so you can create a stacktrace.

  • Can receive your own Application error codes.

Usage

Import the library:

import "github.com/vanclief/ez"

Creating an error:

const op = "TestNew"
err := ez.New(op, ECONFLICT, "An error message", nil)

Creating nested errors (used when the err is not an ez.Error):

const op = "TestNew"
err1 := errors.New("emit macho dwarf: elf header corrupted")
err2 := ez.New(op, ECONFLICT, "Elf header should not be corrupted", err1)

Creating wrapped errors:

const op = "OriginalOp"
err1 := ez.New(op, EINTERNAL, "Nested error", nil)

const newOp = "NewOp"
err2 := ez.Wrap(newOp, err1)

Return the string interpretation of an error:

const op = "TestError"
err := ez.New(op, EINTERNAL, "An internal error", nil)

err.Error() >> "TestError: <internal> An internal error"

Return the code of the root error:

const op = "TestErrorCode"
err := ez.New(op, EINVALID, "An invalid error", nil)

ez.ErrorCode(err) >> "invalid"

Return the human readable code:

const op = "TestErrorMessage"
err := ez.New(op, ENOTFOUND, "A not found error", nil)

ez.ErrorMessage(err) >> "A not found error"

About

Minimalistic package for handling Go errors in an easy way

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages