Welcome to mirror list, hosted at ThFree Co, Russian Federation.

err.go « common « util - github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: e12bd13f166346f0636007e7c50c0650952b7661 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
// Package common provides common utility functions for error handling, formatting, and multi-error management.
package common

import (
	"errors"
	"fmt"

	"github.com/mhsanaei/3x-ui/v2/logger"
)

// NewErrorf creates a new error with formatted message.
func NewErrorf(format string, a ...any) error {
	msg := fmt.Sprintf(format, a...)
	return errors.New(msg)
}

// NewError creates a new error from the given arguments.
func NewError(a ...any) error {
	msg := fmt.Sprintln(a...)
	return errors.New(msg)
}

// Recover handles panic recovery and logs the panic error if a message is provided.
func Recover(msg string) any {
	panicErr := recover()
	if panicErr != nil {
		if msg != "" {
			logger.Error(msg, "panic:", panicErr)
		}
	}
	return panicErr
}