Documentation ¶
Overview ¶
Safely is a package for providing safety wrappers around commonly used features.
You might have at one point done this:
go myFunc()
But what happens if myFunc panics? It will terminate the program with a panic.
Safely provides a panic-trapping goroutine runner:
safely.Go(myFunc)
If `myFunc` panics, Safely will capture the panic and log the error message.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Go ¶
func Go(todo GoDoer)
Go executes a function as a goroutine, but recovers from any panics.
Normally, if a GoRoutine panics, it will stop execution on the current program, which ain't always good.
safely.Go handles this by trapping the panic and writing it to the default logger.
To use your own logger, use safely.GoLog.
func GoDo ¶
GoDo runs a Goroutine, traps panics, and logs panics to a safely.Logger.
Example:
_, _, cxt := cookoo.Cookoo() safely.GoDo(cxt, func(){})
func GoLog ¶
func GoLog(logger SafelyLogger, todo GoDoer)
GoLog executes a function as a goroutine, but traps any panics.
If a panic is encountered, it is logged to the given logger.
Types ¶
type SafelyLogger ¶
type SafelyLogger interface {
Printf(string, ...interface{})
}
SafelyLogger is used to log messages when a failure occurs