captureException method
      
Future<SentryId> 
captureException(
    
- dynamic throwable, {
- dynamic stackTrace,
- Hint? hint,
- ScopeCallback? withScope,
Captures the exception
Implementation
Future<SentryId> captureException(
  dynamic throwable, {
  dynamic stackTrace,
  Hint? hint,
  ScopeCallback? withScope,
}) async {
  var sentryId = SentryId.empty();
  if (!_isEnabled) {
    _options.logger(
      SentryLevel.warning,
      "Instance is disabled and this 'captureException' call is a no-op.",
    );
  } else if (throwable == null) {
    _options.logger(
      SentryLevel.warning,
      'captureException called with null parameter.',
    );
  } else {
    final item = _peek();
    late Scope scope;
    final s = _cloneAndRunWithScope(item.scope, withScope);
    if (s is Future<Scope>) {
      scope = await s;
    } else {
      scope = s;
    }
    try {
      var event = SentryEvent(
        throwable: throwable,
        timestamp: _options.clock(),
      );
      if (_options.isTracingEnabled()) {
        event = _assignTraceContext(event);
      }
      sentryId = await item.client.captureEvent(
        event,
        stackTrace: stackTrace,
        scope: scope,
        hint: hint,
      );
    } catch (exception, stackTrace) {
      _options.logger(
        SentryLevel.error,
        'Error while capturing exception',
        exception: exception,
        stackTrace: stackTrace,
      );
      if (_options.automatedTestMode) {
        rethrow;
      }
    } finally {
      _lastEventId = sentryId;
    }
  }
  return sentryId;
}