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) async {
  final builder = _LogBuilder(maxWidth);

  final response = err.response;
  if (response != null) {
    builder.addTitle('<<< DioError │ ${err.requestOptions.method} │ '
        '${response.statusCode} ${response.statusMessage} │ '
        '${response.requestOptions.uri}');

    if (error) {
      builder.startSection('Headers');
      builder.addMap(response.headers.map);
      builder.endSection();

      builder.startSection('Body');
      builder.addBodyData(response.data);
      builder.endSection();
    }
  } else {
    builder.addTitle('<<< DioError (${err.type}) │ '
        '${err.requestOptions.method} │ ${err.requestOptions.uri}');

    final message = err.message;
    if (error && message != null) {
      builder.startSection('Message');
      builder.addMessage(message);
      builder.endSection();
    }
  }

  loggy.log(errorLevel, builder.build());
  super.onError(err, handler);
}