Panic et recover
Contexte
Section intitulée « Contexte »panicarrête le flux normal, exécute lesdefer, puis le programme se termine.recoverest une fonction qui permet de reprendre le contrôle après unpanic. Elle doit être appelée à l’intérieur d’une fonction différée (defer).
À utiliser uniquement pour des erreurs irrécupérables (ex. état incohérent). Pour les erreurs normales, préférez la gestion par error.
Attraper un panic et continuer.
Code exemple
Section intitulée « Code exemple »package main
import "fmt"
func main() { // Fonction qui peut paniquer defer func() { if r := recover(); r != nil { fmt.Println("Recovered from:", r) } }()
fmt.Println("Avant panic") panic("une erreur grave") fmt.Println("Ceci ne sera pas exécuté")}Avant panicRecovered from: une erreur graveLe programme ne plante pas, mais il continue après le recover. Cela peut être utile pour des serveurs web (éviter qu’une requête ne fasse planter tout le serveur).