Panic

suggest change

A panic halts normal execution flow and exits the current function.

Any deferred calls will then be executed before control is passed to the next function higher on the stack.

Each stack’s function will exit and run deferred calls until the panic is handled using a deferred recover(), or until the panic reaches main() and terminates the program.

If this occurs, the argument provided to panic and a stack trace will be printed to stderr.

func foo() {
	defer fmt.Println("Exiting foo")
	panic("bar")
}

func main() {
	defer fmt.Println("Exiting main")
	foo()
}
Exiting foo
Exiting main
panic: bar

goroutine 1 [running]:
main.foo()
	/tmp/src407264016/main.go:10 +0xb9
main.main()
	/tmp/src407264016/main.go:15 +0xa2
exit status 2

panic accepts any type as its parameter.

Feedback about page:

Feedback:
Optional: your email if you want me to get back to you:



Table Of Contents