onError method

  1. @override
void onError(
  1. DioException err,
  2. ErrorInterceptorHandler handler
)

Called when an exception was occurred during the request.

Implementation

@override
void onError(DioException err, ErrorInterceptorHandler handler) {
  final o = err.requestOptions;
  final resp = err.response;
  if (resp != null) {
    LayerXNetworkLogger.record(
      endpoint: o.uri.toString(),
      method: o.method,
      statusCode: resp.statusCode ?? 0,
      responseBody: _stringify(resp.data),
      requestBody: _stringify(o.data),
      durationMs: _elapsed(o),
    );
  } else {
    LayerXNetworkLogger.recordException(
      endpoint: o.uri.toString(),
      method: o.method,
      error: err,
      stackTrace: err.stackTrace,
      requestBody: _stringify(o.data),
      durationMs: _elapsed(o),
    );
  }
  handler.next(err);
}