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.

51 lines
1.6KB

  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. if (statusCode == 400) {
  25. errorDescription = customMessageError ?? exception_dio_400;
  26. } else if (statusCode == 401) {
  27. errorDescription = exception_dio_401;
  28. } else if (statusCode == 403) {
  29. errorDescription = exception_dio_403;
  30. } else if (statusCode == 404) {
  31. errorDescription = exception_dio_404;
  32. } else if (statusCode == 500) {
  33. errorDescription = exception_dio_500;
  34. } else {
  35. errorDescription = exception_common;
  36. }
  37. break;
  38. case DioErrorType.SEND_TIMEOUT:
  39. errorDescription = exception_dio_send_timeout;
  40. break;
  41. }
  42. } catch (_) {
  43. errorDescription = exception_common;
  44. }
  45. return errorDescription;
  46. }
  47. }