summaryrefslogtreecommitdiff
path: root/types/error.go
diff options
context:
space:
mode:
authorAleksandar Pesic <peske.nis@gmail.com>2022-12-04 21:48:20 +0100
committerjwijenbergh <jeroenwijenbergh@protonmail.com>2022-12-12 13:26:51 +0100
commit3ac1d35257b56cca92ad0eb7f4d18abb366cf105 (patch)
tree432db14d1f92a252518f371be420fa0d3ef044c8 /types/error.go
parent37bca013bd4405548b274ac473acf959ad661ee6 (diff)
simplify error handling
fixes #6 Signed-off-by: Aleksandar Pesic <peske.nis@gmail.com>
Diffstat (limited to 'types/error.go')
-rw-r--r--types/error.go98
1 files changed, 0 insertions, 98 deletions
diff --git a/types/error.go b/types/error.go
deleted file mode 100644
index da5d971..0000000
--- a/types/error.go
+++ /dev/null
@@ -1,98 +0,0 @@
-package types
-
-import (
- "errors"
- "fmt"
-)
-
-type ErrLevel int8
-
-const (
- // All other errors, default.
- ErrOther ErrLevel = iota
-
- // The erorr is just here as additional info.
- ErrInfo
-
- // The error is just here as a warning.
- ErrWarning
-
- // The error is fatal, the app cannot function.
- ErrFatal
-)
-
-type WrappedErrorMessage struct {
- Level ErrLevel
- Message string
- Err error
-}
-
-// NewWrappedError returns a WrappedErrorMessage and uses the error level from the parent.
-func NewWrappedError(message string, err error) *WrappedErrorMessage {
- return &WrappedErrorMessage{Level: ErrorLevel(err), Message: message, Err: err}
-}
-
-// NewWrappedError returns a WrappedErrorMessage and uses the given error level from the parent.
-func NewWrappedErrorLevel(level ErrLevel, message string, err error) *WrappedErrorMessage {
- return &WrappedErrorMessage{Level: level, Message: message, Err: err}
-}
-
-func (e *WrappedErrorMessage) Unwrap() error {
- return e.Err
-}
-
-func (e *WrappedErrorMessage) Cause() error {
- causeErr := e.Err
- for errors.Unwrap(causeErr) != nil {
- causeErr = errors.Unwrap(causeErr)
- }
- return causeErr
-}
-
-func (e *WrappedErrorMessage) Traceback() string {
- returnStr := fmt.Sprintf("%s\n%s", e.Message, "Traceback:")
- causeErr := e.Err
- for errors.Unwrap(causeErr) != nil {
- causeErr = errors.Unwrap(causeErr)
- var wrappedErr *WrappedErrorMessage
-
- errorStr := causeErr.Error()
-
- if errors.As(causeErr, &wrappedErr) {
- errorStr = wrappedErr.Message
- }
- returnStr += fmt.Sprintf("\n - %s", errorStr)
- }
- return returnStr
-}
-
-func (e *WrappedErrorMessage) Error() string {
- return fmt.Sprintf("Got error: %s, with cause: %s", e.Message, e.Err)
-}
-
-func ErrorTraceback(err error) string {
- var wrappedErr *WrappedErrorMessage
-
- if errors.As(err, &wrappedErr) {
- return wrappedErr.Traceback()
- }
- return err.Error()
-}
-
-func ErrorCause(err error) error {
- var wrappedErr *WrappedErrorMessage
-
- if errors.As(err, &wrappedErr) {
- return wrappedErr.Cause()
- }
- return err
-}
-
-func ErrorLevel(err error) ErrLevel {
- var wrappedErr *WrappedErrorMessage
-
- if errors.As(err, &wrappedErr) {
- return wrappedErr.Level
- }
- return ErrOther
-}