美文网首页
Flutter异常捕获方式

Flutter异常捕获方式

作者: xmb | 来源:发表于2021-07-14 10:13 被阅读0次
  • 同步异常捕获

同步捕获:使用try catch

    try {
      throw FlutterError('同步异常');
    } catch (e) {
      print(e);
    }
  • 异步异常捕获

方法1:

使用Flutter提供的catchError捕获

    Future.delayed(Duration(seconds: 1)).then((value) {
      throw FlutterError('异步异常');
    }).catchError((e) {
      print(e);
    });
方法2:

将异步转为同步捕获

    try {
      await Future.delayed(Duration(seconds: 1), () {
        throw FlutterError('异步');
      });
    } catch (e) {
      print(e);
    }
  • 全局捕获

方法1:

在入口函数main里全局捕获

void main() {
  HiDefend.run(MyApp());
}
import 'dart:async';

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:hi_base/log_util.dart';

class HiDefend {
  /// 全局异常捕获
  static run(Widget app) {
    /// 捕获flutter框架异常
    FlutterError.onError = (FlutterErrorDetails details) {
      if (kReleaseMode) {
        // 线上环境,走上报逻辑
        Zone.current.handleUncaughtError(details.exception, details.stack!);
      } else {
        // 开发环境,走console抛出
        FlutterError.dumpErrorToConsole(details);
      }
    };

    /// 捕获程序异常
    runZonedGuarded(() {
      runApp(app);
    }, (e, s) => _reportError(e, s));
  }

  /// 通过接口上报异常
  static _reportError(Object e, StackTrace s) {
    LogUtil.log('error', e);
    LogUtil.log('StackTrace', s);
  }
}
方法2:

使用buglyflutter插件捕获

dependencies:
  flutter_bugly: ^0.3.3

相关文章

  • Flutter异常捕获方式

    同步异常捕获 同步捕获:使用try catch 异步异常捕获 方法1: 使用Flutter提供的catchErro...

  • flutter 全局异常捕获

    dart开发中,try-catch使用方式: 我们使用如上方式,在关键代码处对Flutter进行异常捕获。不过,还...

  • Flutter异常捕获

    无论我们的应用写得多么完美、测试得多么全面,总是无法完全避免线上的异常问题。 这些异常,可能是因为不充分的机型适配...

  • Flutter 异常捕获

    Flutter 异常 Flutter 异常指的是,Flutter 程序中 Dart 代码运行时意外发生的错误事件。...

  • Flutter异常捕获runZoned

    Flutter异常捕获Dart中可以通过try/catch/finally来捕获代码块异常,这个和其它变成语言类似...

  • Dart-4 异常捕获机制

    1.Flutter 异常捕获机制 Dart 中可以通过 try/catch/on /finally 来捕获代码块...

  • Springboot异常处理的五种方式

    SpringBoot 框架异常处理有五种处理方式,从范围来说包括有全局异常捕获处理方式和局部异常捕获处理方式,接下...

  • Flutter异常捕获处理

    本文内容非原创, 仅用于整理记录原文链接?: flutter 崩溃收集 Dart线程模型及异常捕获 Flutter...

  • Flutter异常捕获runZoned

    今天开始看gsy_github_app_flutter入口文件就来了个runZoned,代码如下 ErrorWid...

  • Python轻松入门 - 6 异常处理

    异常处理是写程序必须要考虑的问题 捕获异常 try: except: try方式捕获异常, 并在except中处理...

网友评论

      本文标题:Flutter异常捕获方式

      本文链接:https://www.haomeiwen.com/subject/kozepltx.html