Run-time Exceptions and Panic

This lesson explains runtime errors in detail and how a program responds to them.

We'll cover the following

Run-time panic

When an execution errors occur, such as attempting to index an array out of bounds or a type assertion failing, the Go runtime triggers a run-time panic with a value of the interface type runtime.Error, and the program crashes with a message of the error. This value has a RuntimeError() method, to distinguish it from a normal error.

Panic can also be initiated from code directly: when the error-condition (which we are testing in the code) is so severe and unrecoverable that the program cannot continue, the panic function is used, effectively creating a run-time error that will stop the program. It takes one argument of any type, usually a string, to be printed out when the program dies. So, panic resembles the throw statement from Java or C#. The Go runtime takes care to stop the program and issue some debug information. How it works is illustrated below:

Get hands-on with 1200+ tech skills courses.