Discover Packages
go.chromium.org/luci
common
runtime
paniccatcher
package
Version:
v0.0.0-...-c912a3c
Opens a new window with list of versions in this module.
Published: Nov 27, 2024
License: Apache-2.0
Opens a new window with license information.
Imports: 1
Opens a new window with list of imports.
Imported by: 37
Opens a new window with list of known importers.
Documentation
Documentation
¶
Package paniccatcher package exposes a set of utility structures and methods
that support standardized panic catching and handling.
Example is a very simple example of how to use Catch to recover from a panic
and log its stack trace.
Do(func() {
fmt.Println("Doing something...")
panic("Something wrong happened!")
}, func(p *Panic) {
fmt.Println("Caught a panic:", p.Reason)
})
Output:
Doing something...
Caught a panic: Something wrong happened!
func Catch(cb func(p *Panic ))
Catch recovers from panic. It should be used as a deferred call.
If the supplied panic callback is nil, the panic will be silently discarded.
Otherwise, the callback will be invoked with the panic's information.
func Do(f func(), cb func(p *Panic ))
Do executes f. If a panic occurs during execution, the supplied callback will
be called with the panic's information.
If the panic callback is nil, the panic will be caught and discarded silently.
type Panic struct {
Reason any
Stack string
}
Panic is a snapshot of a panic, containing both the panic's reason and the
system stack.
func PCall(fn func()) (ret *Panic )
PCall calls a nullary function and returns the panic if there was one.
Source Files
¶
Click to show internal directories.
Click to hide internal directories.