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"
|
"runtime/debug"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"github.com/sirupsen/logrus"
|
||||||
|
|
||||||
"github.com/yuaotian/go-cursor-help/internal/config"
|
"github.com/yuaotian/go-cursor-help/internal/config"
|
||||||
"github.com/yuaotian/go-cursor-help/internal/lang"
|
"github.com/yuaotian/go-cursor-help/internal/lang"
|
||||||
"github.com/yuaotian/go-cursor-help/internal/process"
|
"github.com/yuaotian/go-cursor-help/internal/process"
|
||||||
"github.com/yuaotian/go-cursor-help/internal/ui"
|
"github.com/yuaotian/go-cursor-help/internal/ui"
|
||||||
"github.com/yuaotian/go-cursor-help/pkg/idgen"
|
"github.com/yuaotian/go-cursor-help/pkg/idgen"
|
||||||
|
|
||||||
"github.com/sirupsen/logrus"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// Global variables
|
// Global variables
|
||||||
@ -29,7 +29,15 @@ var (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
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()
|
handleFlags()
|
||||||
setupLogger()
|
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() {
|
func handleFlags() {
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
if *showVersion {
|
if *showVersion {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user