reportException static method
Future<void>
reportException(
- Exception exception, {
- ErrorSeverityLevel severityLevel = ErrorSeverityLevel.warning,
- 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 hed = {
"rst": stackTrace?.toString(),
"crt": DateUtils.convertDateTimeToLong(DateTime.now()),
"env": 'Flutter',
"em": exception.toString(),
};
final arguments = {
"hed": jsonEncode(hed),
"sev": severityLevel.index,
};
await channel.invokeMethod<void>('reportError', arguments);
} on PlatformException catch (e) {
throw Exception(e.details);
}
}