Flutter 获取全局异常 并捕获 处理 直接上代码
void main() async {
// **runZoned** 会获取其他异常数据,测试感觉不适用,根据自己需求使用
runZonedGuarded(() async {
// 获取框架异常 WidgetFlutterBinding用于与 Flutter 引擎交互
WidgetsFlutterBinding.ensureInitialized();
FlutterError.onError = (FlutterErrorDetails details) {
// 异常上报 转发容易遗漏异常消息
if ((details.exception) != null) {
debugPrint("FlutterError-${details.exception}");
}
};
// 运行app
runApp(APP());
}, (Object e, StackTrace s) {
// 异常上报
if (e != null) {
debugPrint("runZonedGuarded-$e");
}
});
}
备注: 如果你的应用在runApp 中调用了 WidgetsFlutterBinding.ensureInitialized() 方法来进行一些初始化操作,则必须在runZonedGuarded中调用WidgetsFlutterBinding.ensureInitialized()