首次提交:初始化项目代码
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
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("主程序执行完成,无崩溃退出")
|
||||
}
|
||||
Reference in New Issue
Block a user