def_let_err.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // package def_let_err -- фиксировананя ошибка
  2. package def_let_err
  3. import (
  4. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_let_txt"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec"
  6. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec_base"
  7. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
  8. )
  9. // LetErr -- обёрнутая ошибка.
  10. type LetErr struct {
  11. *def_let_txt.LetTxt
  12. }
  13. // Err -- создать новую обёрнутую ошибку.
  14. func Err(msg def_spec.ATxt, arg ...any) *LetErr {
  15. helpers.If(msg == "").Hassert("Err(): msg is empty")
  16. sf := &LetErr{
  17. LetTxt: def_let_txt.NewLetTxt(msg, arg...),
  18. }
  19. return sf
  20. }
  21. // WrapErr -- возвращает обёрнутую ошибку.
  22. func (sf *LetErr)WrapErr(err error, arg ...any) *LetErr {
  23. _sf := &LetErr{
  24. LetTxt: def_let_txt.NewLetTxt(err.Error(), arg...),
  25. }
  26. return _sf
  27. }
  28. // IsErr -- возвращает true, если ошибка.
  29. func (sf *LetErr) IsErr() def_spec_base.Bool {
  30. return sf.Get() != ""
  31. }
  32. // Error -- возвращает хранимую ошибку.
  33. func (sf *LetErr) Error() string {
  34. return sf.String()
  35. }