| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- import 'package:dio/dio.dart';
- class DioExceptions implements Exception {
- late String message;
- DioExceptions.fromDioException(DioException dioError) {
- // log("DioException is ${dioError.type}");
- switch (dioError.type) {
- case DioExceptionType.cancel:
- message = "Request to API server was cancelled";
- break;
- case DioExceptionType.connectionTimeout:
- message = "Connection timeout with API server";
- break;
- case DioExceptionType.receiveTimeout:
- message = "Receive timeout in connection with API server";
- break;
- case DioExceptionType.badResponse:
- message = _handleError(
- dioError.response?.statusCode,
- dioError.response?.statusMessage,
- );
- break;
- case DioExceptionType.sendTimeout:
- message = "Send timeout in connection with API server";
- break;
- case DioExceptionType.connectionError:
- message = "No internet.\n you'll get last cached valid response.";
- break;
- case DioExceptionType.unknown:
- message = (dioError.message == "")
- ? "Unexpected error occurred"
- : (dioError.message.toString());
- break;
- default:
- if (dioError.message?.contains("SocketException") ?? false) {
- message = 'No Internet';
- } else {
- message = "Something went wrong.\n${dioError.message}";
- }
- break;
- }
- }
- String _handleError(int? statusCode, dynamic error) {
- switch (statusCode) {
- case 400:
- return 'Bad request';
- case 401:
- return 'Unauthorized';
- case 403:
- return 'Forbidden';
- case 404:
- return error;
- case 500:
- return 'Internal server error';
- case 502:
- return 'Bad gateway';
- default:
- return 'Oops something went wrong';
- }
- }
- @override
- String toString() => message;
- }
|