Skip to content

henrmota/errors-handling-example

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Errors example

Just an example of how I build errors with type and context just exporting an error type.

Handling errors is hard, because there is some contextual information we want to save.

Besides that, errors can be created at every layer of an application. Given that we want to handle this exporting the minimum types possible.

In this example I wrapped the library from https://github.com/pkg/errors, extending the functionalities.

Creating a typed errors is as easy:

  errors.BadRequest.New("error parsing the input information")

You can create an untyped error as easy as:

  errors.New("an untyped error")

Adding a new context to an existing error:

  errors.AddContext(err, "field", "message")

In the top layer when you decide to log or return a web response:

  errors.GetType(err) == errors.BadRequest // true
  errors.GetContext(err) // map[string]string{"field": "field", "message": "message"}

To add new error type is just adding a new constant to errors

const (
	NoType = ErrorType(iota)
	BadRequest
	NotFound
  //ADD here
)

About

An example of error handling

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages