Maison > Article > développement back-end > panique et récupération dans la gestion des exceptions Golang
Dans Go, Panic et Recover sont utilisés pour la gestion des exceptions. Panic est utilisé pour signaler les exceptions et Recover est utilisé pour récupérer des exceptions. Panic arrêtera l'exécution du programme et générera une valeur d'exception de type interface{}. Recover peut intercepter une exception d'une fonction différée ou d'une goroutine, renvoyant la valeur d'exception de type interface{} qu'elle renvoie.
Panic et Recover dans la gestion des exceptions du langage Go
Dans le langage Go, les mots-clés panic
et recover
sont des mécanismes importants pour la gestion des exceptions. panic
est utilisé pour signaler les exceptions, et recover
est utilisé pour récupérer des exceptions. panic
和 recover
关键字是异常处理的重要机制。panic
用于报告异常,而 recover
用于从异常中恢复。
Panic
panic
关键字用于报告一个异常条件,它会立即停止程序执行,并打印堆栈信息。使用 panic
时,程序会抛出一个 interface{}
类型的异常值。例如:
package main func main() { panic("发生了异常") }
Recover
recover
关键字用于从 panic
中恢复。它可以从当前 goroutine 返回一个 interface{}
类型的异常值。recover 只能在延迟函数或 goroutine 中使用。例如:
package main import "fmt" func main() { defer func() { if r := recover(); r != nil { fmt.Println("捕获到异常:", r) } }() panic("发生了异常") }
实战案例
假设我们有一个函数 divide
,它计算两个数的商:
func divide(a, b int) float64 { if b == 0 { panic("除数不能为零") } return float64(a) / float64(b) }
为了处理 divide
函数中可能发生的异常,我们可以使用 recover
Panic
🎜🎜 Le mot-clépanic
est utilisé pour signaler une condition d'exception, qui arrêtera immédiatement l'exécution du programme et imprimera les informations sur la pile. Lors de l'utilisation de panic
, le programme générera une valeur d'exception de type interface{}
. Par exemple : le mot-clé 🎜func main() { defer func() { if r := recover(); r != nil { fmt.Println("捕获到异常:", r) } }() fmt.Println(divide(10, 2)) fmt.Println(divide(10, 0)) }🎜🎜Recover🎜🎜🎜
recover
est utilisé pour récupérer de panic
. Il peut renvoyer une valeur d'exception de type interface{}
à partir de la goroutine actuelle. recovery ne peut être utilisé que dans des fonctions différées ou des goroutines. Par exemple : 🎜5 捕获到异常: 除数不能为零🎜🎜Cas pratique🎜🎜🎜Supposons que nous ayons une fonction
divide
qui calcule le quotient de deux nombres : 🎜rrreee🎜Afin de gérer ce qui peut arriver dans la divide Pour les exceptions, nous pouvons utiliser <code>recover
Mot-clé : 🎜rrreee🎜Sortie : 🎜rrreeeCe 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!