Ce qui suit est une explication détaillée de l'utilisation de Golang panic de la colonne tutoriel golang J'espère que cela sera utile aux amis dans le besoin !
Le langage Go recherche la simplicité et l'élégance. Par conséquent, le langage Go ne prend pas en charge l'exception traditionnelle try...catch...finally, car le concepteurs du langage Go Nous pensons que mélanger des exceptions avec des structures de contrôle peut facilement encombrer le code.
Parce que les développeurs peuvent facilement abuser des exceptions et même lancer une exception pour une petite erreur. En langage Go, plusieurs valeurs sont utilisées pour renvoyer des erreurs. N'utilisez pas d'exceptions pour remplacer les erreurs, et encore moins contrôler le processus. Dans de rares cas, c'est-à-dire lorsqu'une véritable exception est rencontrée (par exemple, le diviseur est 0). Utilisez uniquement la gestion des exceptions introduite dans Go : différer, paniquer, récupérer.
Les scénarios d'utilisation de ces exceptions peuvent être décrits simplement : Go peut lancer une exception de panique, puis capturer l'exception via la récupération en différé, puis la gérer normalement.
package main import "fmt"func main(){ defer func(){ // 必须要先声明defer,否则不能捕获到panic异常 fmt.Println("c") if err:=recover();err!=nil{ fmt.Println(err) // 这里的err其实就是panic传入的内容,55 } fmt.Println("d") }() f() } func f(){ fmt.Println("a") panic(55) fmt.Println("b") fmt.Println("f") } 输出结果: a c d exit code 0, process exited normally.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!