Files
bulma/recover_service_demo.go
T

32 lines
685 B
Go

package main
import (
"fmt"
"runtime"
)
// ServiceRecover 服务级 panic 恢复,保证服务不宕机
func ServiceRecover() {
defer func() {
if err := recover(); err != nil {
// 获取堆栈信息
stackBuf := make([]byte, 4096)
stackBuf = stackBuf[:runtime.Stack(stackBuf, false)]
fmt.Printf("[服务演示] 捕获异常: %v\n堆栈信息: %s\n", err, stackBuf)
}
}()
fmt.Println("[服务演示] 处理 HTTP 请求")
handleReq()
}
func handleReq() {
panic("请求参数格式错误")
}
func main() {
// 服务级恢复演示
ServiceRecover()
println("----------------------------------------")
fmt.Println("主程序执行完成,无崩溃退出")
}