Files
flutter-crypto-app/lib/constants/exceptions.dart
salvadordeveloper b279b64c6e Initial commit
2021-05-27 15:59:34 -06:00

48 lines
1.2 KiB
Dart

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;
}