def_err.go 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // package def_err -- базовый тип ошибки
  2. package def_err
  3. import (
  4. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_spec"
  5. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs/def_txt"
  6. "gitp78su.ipnodns.ru/svi/kern/v4/lev0/helpers"
  7. )
  8. // KErr -- обёрнутая ошибка.
  9. type KErr struct {
  10. def_spec.ITxtFix
  11. }
  12. // Err -- создать новую обёрнутую ошибку.
  13. func Err(msg def_spec.ATxt, arg ...any) *KErr {
  14. helpers.If(msg == "").Hassert("Err(): msg is empty")
  15. _msg := def_spec.Sprintf(msg, arg...)
  16. sf := &KErr{
  17. ITxtFix: def_txt.Txt(_msg),
  18. }
  19. _ = def_spec.IErr(sf)
  20. return sf
  21. }
  22. // WrapErr -- возвращает обёрнутую ошибку.
  23. func WrapErr(err error) def_spec.IErr {
  24. _msg := def_txt.TxtFix(err.Error())
  25. sf := &KErr{
  26. ITxtFix: _msg,
  27. }
  28. return sf
  29. }
  30. // IsErr -- возвращает true, если ошибка.
  31. func (sf *KErr) IsErr() bool {
  32. return sf.Get() != ""
  33. }
  34. // Error -- возвращает хранимую ошибку.
  35. func (sf *KErr) Error() string {
  36. return sf.String()
  37. }