package main
import (
"fmt"
"runtime"
)
func main() {
defer func() {
if r := recover(); r != nil {
buff := make([]byte, 1<<10)
runtime.Stack(buff, false)
fmt.Printf("%v %v", r, string(buff))
}
}()
b := 10
b = b - 10
fmt.Println(100 / b)
}

本文通过一个Go语言程序示例,展示了如何使用defer和recover进行错误处理和恢复,避免程序因异常而崩溃,同时提供了运行时堆栈跟踪的方法。
652

被折叠的 条评论
为什么被折叠?



