Files
bulma/recover_recover_demo.go

29 lines
603 B
Go

package main
import (
"fmt"
"runtime"
)
// CatchPanic 通用恢复工具函数(工程化优化)
func CatchPanic(tag string) {
if err := recover(); err != nil {
stack := make([]byte, 4096)
stack = stack[:runtime.Stack(stack, false)]
fmt.Printf("[%s] 捕获panic: %v\n堆栈: %s\n", tag, err, stack)
}
}
// BasicDemo 基础恢复演示
func BasicRecover() {
defer CatchPanic("基础演示")
panic("redis 连接超时")
}
func main() {
// 基础恢复演示
BasicRecover()
println("----------------------------------------")
fmt.Println("主程序执行完成,无崩溃退出")
}