mirror of
https://github.com/yuaotian/go-cursor-help.git
synced 2025-06-08 04:22:06 +08:00
Merge pull request #434 from cursor-home/master
fix: Improve panic recovery mechanism in main function
This commit is contained in:
commit
00bbf18ce7
@ -11,13 +11,13 @@ import (
|
||||
"runtime/debug"
|
||||
"strings"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/yuaotian/go-cursor-help/internal/config"
|
||||
"github.com/yuaotian/go-cursor-help/internal/lang"
|
||||
"github.com/yuaotian/go-cursor-help/internal/process"
|
||||
"github.com/yuaotian/go-cursor-help/internal/ui"
|
||||
"github.com/yuaotian/go-cursor-help/pkg/idgen"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
// Global variables
|
||||
@ -29,7 +29,15 @@ var (
|
||||
)
|
||||
|
||||
func main() {
|
||||
setupErrorRecovery()
|
||||
// Place defer at the beginning of main to ensure it can catch panics from all subsequent function calls
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
log.Errorf("Panic recovered: %v\n", r)
|
||||
debug.PrintStack()
|
||||
waitExit()
|
||||
}
|
||||
}()
|
||||
|
||||
handleFlags()
|
||||
setupLogger()
|
||||
|
||||
@ -73,16 +81,6 @@ func main() {
|
||||
}
|
||||
}
|
||||
|
||||
func setupErrorRecovery() {
|
||||
defer func() {
|
||||
if r := recover(); r != nil {
|
||||
log.Errorf("Panic recovered: %v\n", r)
|
||||
debug.PrintStack()
|
||||
waitExit()
|
||||
}
|
||||
}()
|
||||
}
|
||||
|
||||
func handleFlags() {
|
||||
flag.Parse()
|
||||
if *showVersion {
|
||||
|
Loading…
x
Reference in New Issue
Block a user