Feature-rich Golang error interface implementation inspired by Postgres error message style guide http://www.postgresql.org/docs/devel/static/error-style-guide.html
- Error codes
- Verbosity levels
- File and line on which the error occures (Debug+ verbosity level). Not 100% accurate, but close enough: shows file/line where errorx is rendered to string/JSON
- error Stack traces (on verbosity level Trace)
- Nested errors (both regular Golang
error
andErrorx
) - Everything Golang
error
has - it's a drop-in replacement, because it implementserror
interface - Everything Golang
errors
package provides - JSON errors you can just write to your webhandler
http://godoc.org/github.com/goware/errorx
{
"error_code":10,
"error_message":"error message",
"error_details":[
"error details",
"error hint"
],
"cause":{
"error_code":200,
"error_message":"wrapped error message",
"error_details":[
"wrapped error details",
"wrapped error hint"
]
},
"stack":[
{
"file":"errorx_test.go",
"line":175,
"function":"github.com/goware/errorx_test.TestJsonErrorEmbedding"
},
{
"file":"testing.go",
"line":447,
"function":"testing.tRunner"
},
{
"file":"asm_amd64.s",
"line":2232,
"function":"runtime.goexit"
}
]
}
errorx_test.go:28: error 10: error message | error details; error hint