reportException method Null safety

Future<void> reportException(
  1. Exception exception,
  2. {ErrorSeverityLevel severityLevel = ErrorSeverityLevel.warning,
  3. StackTrace? stackTrace}
)

Reports an Exception that was caught.

This can be called in catch blocks to report unexpected exceptions, that you want to track.

Method might throw Exception.

try {
  await jsonDecode("invalid/exception/json");
} on FormatException catch (e) {
  await Instrumentation.reportException(e,
      severityLevel: ErrorSeverityLevel.warning);
}

Implementation

static Future<void> reportException(Exception exception,
    {ErrorSeverityLevel severityLevel = ErrorSeverityLevel.warning,
    StackTrace? stackTrace}) async {
  try {
    final arguments = {
      "message": exception.toString(),
      "severity": severityLevel.index,
      "stackTrace": stackTrace?.toString()
    };
    await channel.invokeMethod<void>('reportError', arguments);
  } on PlatformException catch (e) {
    throw Exception(e.details);
  }
}