Il existe trois façons de gérer les exceptions de fonctions personnalisées dans Go : utilisez la fonction intégrée de panique (voir l'article pour la syntaxe) Cas pratique : définissez la fonction de division, lorsque le diviseur est 0, avantages de panique : des messages d'erreur pratiques et personnalisables, peuvent être utilisé dans différentes fonctions Inconvénients des erreurs de gestion de niveau : perturbation du déroulement du programme, difficulté de débogage
Il existe de nombreuses façons de gérer les exceptions de fonctions personnalisées dans Go. Une solution consiste à utiliser la fonction intégrée panic
. panic
transmet le contrôle du programme à la fonction recover
, vous permettant de gérer l'exception et de reprendre l'exécution du programme en toute sécurité. panic
内置函数。panic
会将程序控制权传递给 recover
函数,从而允许您处理异常并安全地恢复程序执行。
package main import "fmt" func main() { f := func() { panic("custom error") } defer func() { if r := recover(); r != nil { fmt.Println("Recovered from panic:", r) } }() f() }
注意:defer
语句必须放置在 panic
语句之前,以便在发生 panic
时被调用。
我们定义了一个名为 divide
package main import "fmt" func main() { divide := func(numerator, denominator int) float64 { if denominator == 0 { // 触发错误 panic("不能除以 0") } return float64(numerator) / float64(denominator) } defer func() { if r := recover(); r != nil { fmt.Println("错误:", r) } }() result := divide(10, 2) fmt.Println(result) // 输出:5 result = divide(10, 0) // 触发错误 }
defer
doit être placée avant l'instruction panic
afin que lorsque panic
se produit, appelé. Cas pratiquedivide
, qui divise deux nombres. Si le diviseur est 0, la fonction déclenche une exception : 5 错误: 不能除以 0
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!