import 'package:dio/dio.dart'; import '../../generated/locale_keys.g.dart'; class DataException implements Exception { DataException({required this.message}); DataException.fromDioError(DioError dioError) { switch (dioError.type) { case DioErrorType.cancel: message = LocaleKeys.errorRequestCancelled; break; case DioErrorType.connectTimeout: message = LocaleKeys.errorConnectionTimeout; break; case DioErrorType.receiveTimeout: message = LocaleKeys.errorReceiveTimeout; break; case DioErrorType.response: message = _handleError(dioError.response!.statusCode!); break; case DioErrorType.sendTimeout: message = LocaleKeys.errorSendTimeout; break; default: message = LocaleKeys.errorInternetConnection; break; } } String message = ""; String _handleError(int statusCode) { switch (statusCode) { case 400: return LocaleKeys.errorBadRequest; case 404: return LocaleKeys.errorRequestNotFound; case 500: return LocaleKeys.errorIntenalServer; default: return LocaleKeys.errorSomethingWentWrong; } } @override String toString() => message; }