Go Panique


Exemple

Une panique interrompt le flux d'exécution normal et quitte la fonction en cours. Tous les appels différés seront alors exécutés avant que le contrôle ne soit transmis à la fonction suivante de la pile. La fonction de chaque pile sortira et lancera des appels différés jusqu'à ce que la panique soit gérée à l'aide d'une recover() différée recover() ou jusqu'à ce que la panique atteigne main() et termine le programme. Si cela se produit, l'argument fourni à paniquer et une trace de pile seront imprimés sur stderr .

package main

import "fmt"

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

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

Sortie:

Exiting foo
Exiting main
panic: bar


goroutine 1 [running]:
panic(0x128360, 0x1040a130)
    /usr/local/go/src/runtime/panic.go:481 +0x700
main.foo()
    /tmp/sandbox550159908/main.go:7 +0x160
main.main()
    /tmp/sandbox550159908/main.go:12 +0x120

Il est important de noter que la panic acceptera tout type comme paramètre.