catcher 0.6.8 copy "catcher: ^0.6.8" to clipboard
catcher: ^0.6.8 copied to clipboard

outdated

Plugin for error catching which provides multiple handlers for dealing with errors when they are not caught by the developer.

example/lib/main.dart

import 'package:catcher/catcher.dart';
import 'package:flutter/material.dart';
import 'package:sentry/sentry.dart';

void main() {
  ///Configure your debug options (settings used in development mode)
  CatcherOptions debugOptions = CatcherOptions(
    ///Show information about caught error in dialog
    DialogReportMode(),
    [
      ///Send logs to HTTP server
      HttpHandler(HttpRequestType.post,
          Uri.parse("https://jsonplaceholder.typicode.com/posts"),
          printLogs: true),

      ///Print logs in console
      ConsoleHandler()
    ],
  );

  ///Configure your production options (settings used in release mode)
  CatcherOptions releaseOptions = CatcherOptions(
    ///Show new page with information about caught error
    PageReportMode(),
    [
      ///Send logs to Sentry
      SentryHandler(
        SentryClient(
          SentryOptions(dsn: "<DSN>"),
        ),
      ),

      ///Print logs in console
      ConsoleHandler(),
    ],
  );

  ///Start Catcher and then start App. Now Catcher will guard and report any
  ///error to your configured services!
  Catcher(
    runAppFunction: () {
      runApp(MyApp());
    },
    debugConfig: debugOptions,
    releaseConfig: releaseOptions,
  );
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      ///Last step: add navigator key of Catcher here, so Catcher can show
      ///page and dialog!
      navigatorKey: Catcher.navigatorKey,
      home: Scaffold(
        appBar: AppBar(
          title: const Text("Catcher example"),
        ),
        body: ChildWidget(),
      ),
    );
  }
}

class ChildWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      child: TextButton(
        child: Text("Generate error"),
        onPressed: () => generateError(),
      ),
    );
  }

  ///Simply just trigger some error.
  void generateError() async {
    Catcher.sendTestException();
  }
}
595
likes
0
points
3.41k
downloads

Publisher

verified publisherhasoft.pl

Weekly Downloads

Plugin for error catching which provides multiple handlers for dealing with errors when they are not caught by the developer.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

device_info_plus, device_info_plus_platform_interface, dio, flutter, flutter_mailer, flutter_web_plugins, fluttertoast, logging, mailer, package_info_plus, sentry, universal_io

More

Packages that depend on catcher