mirror of
https://github.com/yuaotian/go-cursor-help.git
synced 2025-06-08 04:22:06 +08:00
fix: improve panic recovery in main function
- Move panic recovery defer to the beginning of main function to ensure it can catch panics from all subsequent function calls - Remove unused setupErrorRecovery function - Add explanatory comment for the defer placement This change ensures proper error handling throughout the entire program execution, rather than just within the setupErrorRecovery function scope.
This commit is contained in:
parent
fc5ea3511b
commit
ec954b3130
@ -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