OpError.go 654 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package lmaxapi
  2. import (
  3. "fmt"
  4. "net"
  5. )
  6. type OpError struct {
  7. Op string
  8. Err error
  9. Code int
  10. isSystemFailure bool
  11. }
  12. func (e *OpError) SystemFailure() bool {
  13. return e.isSystemFailure
  14. }
  15. func (e *OpError) GetCode() int {
  16. return e.Code
  17. }
  18. func (e *OpError) Error() string {
  19. if e == nil {
  20. return "<nil>"
  21. }
  22. s := e.Op
  23. s += ": Code=" + fmt.Sprint(e.Code)
  24. s += ": " + e.Err.Error()
  25. return s
  26. }
  27. func (e *OpError) NetErr() (net.Error, bool) {
  28. err, ok := e.Err.(net.Error)
  29. return err, ok
  30. }
  31. func NewOpError(op string, err error, code int, isSysFail bool) *OpError {
  32. return &OpError{op, err, code, isSysFail}
  33. }