NetworkResponseException.fromDioException constructor
NetworkResponseException.fromDioException(
- DioException err
Factory constructor to create a NetworkResponseException from a DioException
.
Implementation
factory NetworkResponseException.fromDioException(DioException err) {
assert(err.type == DioExceptionType.badResponse);
final statusCode = err.response?.statusCode;
final responseData = err.response?.data;
String message;
NetworkErrorCode code;
switch (statusCode) {
case 400:
message = 'Bad Request (400)';
code = NetworkErrorCode.badRequest;
break;
case 401:
message = 'Unauthorized (401)';
code = NetworkErrorCode.unauthorized;
break;
case 403:
message = 'Forbidden (403)';
code = NetworkErrorCode.forbidden;
break;
case 404:
message = 'Not Found (404)';
code = NetworkErrorCode.notFound;
break;
case 500:
case 501:
case 502:
case 503:
case 504:
message = 'Internal Server Error ($statusCode)';
code = NetworkErrorCode.serverError;
break;
default:
message = 'Unhandled Server Response Status Code: $statusCode';
code = NetworkErrorCode.responseUnhandled;
break;
}
return NetworkResponseException(
message: message, // Default English/debug message
code: code, // The crucial code for localization
statusCode: statusCode,
responseData: responseData,
);
}