errorhandling

package
v0.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 21, 2025 License: GPL-3.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var FailedToGenerateTraceId = CustomErrorPreset{
	Code:        500,
	UserMessage: "",
	DevMessage:  "Error while generating trace id.",
	LogMessage:  "Error while generating trace id.",
	Source:      &GenericErrorsSource,
	Level:       ErrorWARN,
	HttpCode:    500,
}
View Source
var GenericInternalServerError = CustomErrorPreset{
	Code:        500,
	UserMessage: "Internal server error",
	DevMessage:  "An unexpected error occurred on the server",
	LogMessage:  "Internal server error encountered",
	Source:      &GenericErrorsSource,
	Level:       ErrorMedium,
	HttpCode:    500,
}

Preset for 500 Internal Server Error

Functions

func UpdateLogger

func UpdateLogger(logger *logging.Logger)

Types

type CustomError

type CustomError struct {
	TraceId string
	CustomErrorPreset
}

func NewCustomError

func NewCustomError(preset CustomErrorPreset) *CustomError

func NewError

func NewError(err error) *CustomError

func Parse

func Parse(err error) *CustomError

func ParseWith

func ParseWith(err error, ErrorSources ...ErrorSource) *CustomError

func (*CustomError) Error

func (e *CustomError) Error() string

Implement the Error() method for CustomError to satisfy the error interface

func (*CustomError) Format added in v0.0.3

func (e *CustomError) Format(values map[string]string) *CustomError

func (*CustomError) HTML

func (e *CustomError) HTML() (HtmlError, int)

func (*CustomError) HandelWeb

func (e *CustomError) HandelWeb(w http.ResponseWriter, r *http.Request) bool

func (*CustomError) HandelWebExit

func (e *CustomError) HandelWebExit(w http.ResponseWriter, r *http.Request) *CustomError

func (*CustomError) Is

func (err *CustomError) Is(target error) bool

func (*CustomError) IsFromPreset

func (err *CustomError) IsFromPreset(preset *CustomErrorPreset) bool

func (*CustomError) Log

func (e *CustomError) Log() *CustomError

type CustomErrorPreset

type CustomErrorPreset struct {
	// PresetID is a unique identifier for this preset. Used for comparisons. if left empty it wil be dynamically created.
	PresetID uint `json:"preset_id"`

	// Code is the internal error code used for logic or identification.
	Code int `json:"code"`

	// UserMessage is a message intended to be shown to end users.
	UserMessage string `json:"user_message"`

	// DevMessage is a message intended for developers or debugging purposes.
	DevMessage string `json:"dev_message"`

	// LogMessage is the message that should be written to logs.
	LogMessage string `json:"log_message"`

	// Source identifies the origin or category of the error.
	Source *ErrorSource `json:"source"`

	// Level indicates the severity or type of the error.
	Level ErrorLevel `json:"level"`

	// HttpCode is the HTTP status code to return if this error is exposed via an API.
	HttpCode int `json:"http_code"`

	// ContinueExecution determines whether program execution should continue after this error.
	ContinueExecution bool `json:"continue_execution"`
}

CustomErrorPreset defines a reusable error template with associated metadata.

func (*CustomErrorPreset) Error

func (ep *CustomErrorPreset) Error() string

func (*CustomErrorPreset) New

func (preset *CustomErrorPreset) New() *CustomError

type ErrorHandler

type ErrorHandler struct {
	// contains filtered or unexported fields
}

func Default

func Default() *ErrorHandler

func NewErrorHandler

func NewErrorHandler(logger *logging.Logger) *ErrorHandler

func RegisterErrorSource

func RegisterErrorSource(sources ...*ErrorSource) *ErrorHandler

func UnregisterErrorSource

func UnregisterErrorSource(source *ErrorSource) *ErrorHandler

func (*ErrorHandler) GetErrorSources

func (hand *ErrorHandler) GetErrorSources(ErrorSourceNames ...string) []*ErrorSource

func (*ErrorHandler) Parse

func (hand *ErrorHandler) Parse(err error) *CustomError

Attempts to parse an error using registered error sources. Returns a CustomError if recognized, otherwise wraps it in a generic CustomError.

func (*ErrorHandler) ParseWith

func (hand *ErrorHandler) ParseWith(err error, ErrorSources ...ErrorSource) *CustomError

func (*ErrorHandler) RegisterErrorSource

func (hand *ErrorHandler) RegisterErrorSource(sources ...*ErrorSource) *ErrorHandler

Registers one or more error sources to the handler.

func (*ErrorHandler) UnregisterErrorSource

func (hand *ErrorHandler) UnregisterErrorSource(source *ErrorSource) *ErrorHandler

Unregisters a specific error source.

func (*ErrorHandler) UpdateLogger

func (hand *ErrorHandler) UpdateLogger(logger *logging.Logger)

type ErrorLevel

type ErrorLevel int
const (
	ErrorWARN ErrorLevel = iota
	ErrorWrongUsage
	ErrorMedium
	ErrorFail
)

type ErrorSource

type ErrorSource struct {
	Name       string
	ParseError func(error) *CustomError
	SML        *logging.SystemModuleLogger
}
var GenericErrorsSource ErrorSource = ErrorSource{
	Name: "Generic",
	ParseError: func(err error) *CustomError {
		return nil
	},
}

func GetErrorSources

func GetErrorSources(ErrorSourceNames ...string) []*ErrorSource

type HtmlError

type HtmlError struct {
	UserMessage string `json:"userMessage"`
	DevMessage  string `json:"devMessage"`
	TraceId     string `json:"TraceId"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL