import 'dart:convert'; import 'package:dio/dio.dart'; import 'package:farm_tpf/utils/const_string.dart'; class AppException { static String handleError(dynamic error, {String customMessageError}) { String errorDescription = ""; try { DioError dioError = error as DioError; switch (dioError.type) { case DioErrorType.CANCEL: errorDescription = exception_dio_cancle; break; case DioErrorType.CONNECT_TIMEOUT: errorDescription = exception_dio_connect_timeout; break; case DioErrorType.DEFAULT: errorDescription = exception_dio_default; break; case DioErrorType.RECEIVE_TIMEOUT: errorDescription = exception_dio_receive_timeout; break; case DioErrorType.RESPONSE: int statusCode = dioError.response.statusCode; switch (statusCode) { case 400: errorDescription = customMessageError ?? exception_dio_400; break; case 401: errorDescription = exception_dio_401; break; case 403: errorDescription = exception_dio_403; break; case 404: errorDescription = exception_dio_404; break; case 500: errorDescription = exception_dio_500; break; case 1000: errorDescription = exception_dio_1000; break; case 1001: errorDescription = exception_dio_1001; break; case 1002: errorDescription = exception_dio_1002; break; case 1003: errorDescription = exception_dio_1003; break; case 1004: errorDescription = exception_dio_1004; break; case 1005: errorDescription = exception_dio_1005; break; case 1006: errorDescription = exception_dio_1006; break; case 1007: errorDescription = exception_dio_1007; break; case 1008: errorDescription = exception_dio_1008; break; case 1009: errorDescription = exception_dio_1009; break; case 1010: errorDescription = exception_dio_1010; break; case 1011: errorDescription = exception_dio_1011; break; case 1012: errorDescription = exception_dio_1012; break; case 1013: errorDescription = exception_dio_1013; break; case 1014: errorDescription = exception_dio_1014; break; case 1015: errorDescription = exception_dio_1015; break; case 1016: errorDescription = exception_dio_1016; break; case 1017: errorDescription = exception_dio_1017; break; case 1018: errorDescription = exception_dio_1018; break; case 1019: errorDescription = exception_dio_1019; break; case 1020: errorDescription = exception_dio_1020; break; case 1021: errorDescription = exception_dio_1021; break; default: errorDescription = exception_common; } break; case DioErrorType.SEND_TIMEOUT: errorDescription = exception_dio_send_timeout; break; } } catch (_) { errorDescription = exception_common; } return errorDescription; } }