The panic()
function in Go Language is similar to exceptions raised at runtime when an error is encountered. panic()
is either raised by the program itself when an unexpected error occurs or the programmer throws the exception on purpose for handling particular errors.
The panic()
function is inbuilt in Go Language and when it is raised, the code prints a panic message, and the function crashes. If there are other goroutines ongoing, they function normally and return. Once all goroutines have returned, the program crashes. Below is the prototype of the panic()
function:
func panic(v interface{})
The panic()
function, if used deliberately by a programmer, can be given an input of the error message that the programmer wishes to print on the screen when a panic occurs.
Below is an example of how panic()
is raised by a program itself:
package mainimport "fmt"func main() {emp := make(map[string]int)emp["Samia"] = 20emp["Sana"] = 23fmt.Println(emp[20])}
In the code above, the error is raised because the code tries to access the map’s elements through a key of type int
, whereas the map elements can only be accessed through keys of type string
.
Below is an example of when a programmer raises panic
on purpose:
package mainfunc employee(name *string, age int){if age > 65{panic("Age cannot be greater than retirement age")}}func main() {empName := "Samia"age := 75employee(&empName, age)}
As shown in the code above, we call the employee
function from the main
function. We give the employees name
and age
as input. The employee
function raises panic
if the employee’s age is greater than the retirement limit.