exceptions.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. # coding: utf-8
  2. #
  3. # class ATXError(Exception):
  4. # pass
  5. class UiaError(Exception):
  6. pass
  7. class ConnectError(UiaError):
  8. pass
  9. class XPathElementNotFoundError(UiaError):
  10. pass
  11. class GatewayError(UiaError):
  12. def __init__(self, response, description):
  13. self.response = response
  14. self.description = description
  15. def __str__(self):
  16. return "uiautomator2.GatewayError(" + self.description + ")"
  17. class JsonRpcError(UiaError):
  18. @staticmethod
  19. def format_errcode(errcode):
  20. m = {
  21. -32700: 'Parse error',
  22. -32600: 'Invalid Request',
  23. -32601: 'Method not found',
  24. -32602: 'Invalid params',
  25. -32603: 'Internal error',
  26. -32001: 'Jsonrpc error',
  27. -32002: 'Client error',
  28. }
  29. if errcode in m:
  30. return m[errcode]
  31. if errcode >= -32099 and errcode <= -32000:
  32. return 'Server error'
  33. return 'Unknown error'
  34. def __init__(self, error={}, method=None):
  35. self.code = error.get('code')
  36. self.message = error.get('message', '')
  37. self.data = error.get('data', '')
  38. self.method = method
  39. def __str__(self):
  40. return '%d %s: <%s> data: %s, method: %s' % (
  41. self.code, self.format_errcode(
  42. self.code), self.message, self.data, self.method)
  43. def __repr__(self):
  44. return repr(str(self))
  45. class SessionBrokenError(UiaError):
  46. """ only happens when app quit or crash """
  47. class UiObjectNotFoundError(JsonRpcError):
  48. pass
  49. class UiAutomationNotConnectedError(JsonRpcError):
  50. pass
  51. class NullObjectExceptionError(JsonRpcError):
  52. pass
  53. class NullPointerExceptionError(JsonRpcError):
  54. pass
  55. class StaleObjectExceptionError(JsonRpcError):
  56. pass