-
Book Overview & Buying
-
Table Of Contents
Learning Go Programming
Earlier in the chapter, it was stated that Go does not have the traditional exception mechanism offered by other languages. Nevertheless, in Go, there is a way to abruptly exit an executing function known as function panic. Conversely, when a program is panicking, Go provides a way of recovering and regaining control of the execution flow.
During execution, a function may panic because of any one of following:
Explicitly calling the panic built-in function
Using a source code package that panics due to an abnormal state
Accessing a nil value or an out-of-bound array element
Concurrency deadlock
When a function panics, it aborts and executes its deferred calls. Then its caller panics, causing a chain reaction as illustrated in the following figure:

The panic sequence continues all the way up the call stack until the main function is reached and the program exits (crashes). The following source code snippet shows a version of the anagram program that will...