You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123 lines
3.8KB

  1. import 'dart:convert';
  2. import 'package:dio/dio.dart';
  3. import 'package:farm_tpf/utils/const_string.dart';
  4. class AppException {
  5. static String handleError(dynamic error, {String customMessageError}) {
  6. String errorDescription = "";
  7. try {
  8. DioError dioError = error as DioError;
  9. switch (dioError.type) {
  10. case DioErrorType.CANCEL:
  11. errorDescription = exception_dio_cancle;
  12. break;
  13. case DioErrorType.CONNECT_TIMEOUT:
  14. errorDescription = exception_dio_connect_timeout;
  15. break;
  16. case DioErrorType.DEFAULT:
  17. errorDescription = exception_dio_default;
  18. break;
  19. case DioErrorType.RECEIVE_TIMEOUT:
  20. errorDescription = exception_dio_receive_timeout;
  21. break;
  22. case DioErrorType.RESPONSE:
  23. int statusCode = dioError.response.statusCode;
  24. switch (statusCode) {
  25. case 400:
  26. errorDescription = customMessageError ?? exception_dio_400;
  27. break;
  28. case 401:
  29. errorDescription = exception_dio_401;
  30. break;
  31. case 403:
  32. errorDescription = exception_dio_403;
  33. break;
  34. case 404:
  35. errorDescription = exception_dio_404;
  36. break;
  37. case 500:
  38. errorDescription = exception_dio_500;
  39. break;
  40. case 1000:
  41. errorDescription = exception_dio_1000;
  42. break;
  43. case 1001:
  44. errorDescription = exception_dio_1001;
  45. break;
  46. case 1002:
  47. errorDescription = exception_dio_1002;
  48. break;
  49. case 1003:
  50. errorDescription = exception_dio_1003;
  51. break;
  52. case 1004:
  53. errorDescription = exception_dio_1004;
  54. break;
  55. case 1005:
  56. errorDescription = exception_dio_1005;
  57. break;
  58. case 1006:
  59. errorDescription = exception_dio_1006;
  60. break;
  61. case 1007:
  62. errorDescription = exception_dio_1007;
  63. break;
  64. case 1008:
  65. errorDescription = exception_dio_1008;
  66. break;
  67. case 1009:
  68. errorDescription = exception_dio_1009;
  69. break;
  70. case 1010:
  71. errorDescription = exception_dio_1010;
  72. break;
  73. case 1011:
  74. errorDescription = exception_dio_1011;
  75. break;
  76. case 1012:
  77. errorDescription = exception_dio_1012;
  78. break;
  79. case 1013:
  80. errorDescription = exception_dio_1013;
  81. break;
  82. case 1014:
  83. errorDescription = exception_dio_1014;
  84. break;
  85. case 1015:
  86. errorDescription = exception_dio_1015;
  87. break;
  88. case 1016:
  89. errorDescription = exception_dio_1016;
  90. break;
  91. case 1017:
  92. errorDescription = exception_dio_1017;
  93. break;
  94. case 1018:
  95. errorDescription = exception_dio_1018;
  96. break;
  97. case 1019:
  98. errorDescription = exception_dio_1019;
  99. break;
  100. case 1020:
  101. errorDescription = exception_dio_1020;
  102. break;
  103. case 1021:
  104. errorDescription = exception_dio_1021;
  105. break;
  106. default:
  107. errorDescription = exception_common;
  108. }
  109. break;
  110. case DioErrorType.SEND_TIMEOUT:
  111. errorDescription = exception_dio_send_timeout;
  112. break;
  113. }
  114. } catch (_) {
  115. errorDescription = exception_common;
  116. }
  117. return errorDescription;
  118. }
  119. }