onError method
Called when an exception was occurred during the request.
Implementation
@override
void onError(DioException err, ErrorInterceptorHandler handler) {
super.onError(err, handler);
if (!settings.enabled) {
return;
}
final accepted = settings.errorFilter?.call(err) ?? true;
if (!accepted) {
return;
}
try {
final message = '${err.requestOptions.uri}';
Map<String, dynamic> data;
if (err.response?.data is Map<String, dynamic>) {
data = err.response?.data as Map<String, dynamic>;
} else {
data = {'data': err.response?.data};
}
final httpErrorLog = DioErrorLog(
message,
method: err.requestOptions.method,
url: err.requestOptions.uri.toString(),
path: err.requestOptions.uri.path,
statusCode: err.response?.statusCode,
statusMessage: err.response?.statusMessage,
requestHeaders: err.requestOptions.headers,
headers: err.response?.headers.map
.map((key, value) => MapEntry(key, value.toString())),
body: data,
settings: settings,
);
_iSpectify.logCustom(httpErrorLog);
} catch (_) {
//pass
}
}