Skip to content
/ grace Public

Handle Go recover, panic, and errors in a graceful way. Multiple errors support, basic filters and custom handlers.

License

Notifications You must be signed in to change notification settings

oxequa/grace

Repository files navigation

Build status GoReport GoDoc License Gitter


Handle recover, panic and errors in a graceful way


Quickstart

go get github.com/oxequa/grace

The following is a simple example that handles a panic and returns the error without the program crash.

package main

import (
  "fmt"
  "github.com/oxequa/grace"
)

func example() (e error){
  defer grace.Recover(&e) // save recover error and stack trace to e
  numbers := []int{1, 2}
  fmt.Println(numbers[3]) // panic out of index
  return
}

func main() {
  err := example() // no panic occur
  fmt.Println(err)
  fmt.Println("End")
}

Documentation

You can read the full documentation of Grace here.

Contributing

Please read our guideline here.

License

Grace is licensed under the GNU GENERAL PUBLIC LICENSE V3.