flutter 全局异常捕获
flutter 全局异常捕获
来源:网络
更新时间:不详
dart开发中,try-catch使用方式:
//捕获同步异常
try {
...
} catch (e) {
print("try-catch error : $e");
}
//捕获异步异常
Future.error("error").catchError((e) {
print("try-catch error : $e");
});我们使用如上方式,在关键代码处对Flutter进行异常捕获。不过,还有部分异常是在我们没有考虑到的场景下发生的,这些我们没有做埋点处理的异常如何捕获呢?
直接给出异常捕获模板:
void main() {
void reportErrorAndLog(FlutterErrorDetails details) {
final errorMsg = {
"exception": details.exceptionAsString(),
"stackTrace": details.stack.toString(),
};
print("reportErrorAndLog : $errorMsg");
...//上报错误
}
FlutterErrorDetails makeDetails(Object error, StackTrace stackTrace) {
// 构建错误信息
return FlutterErrorDetails(stack: stackTrace, exception: error);
}
FlutterError.onError = (FlutterErrorDetails details) {
//获取 widget build 过程中出现的异常错误
reportErrorAndLog(details);
};
runZonedGuarded(
() {
runApp(MyApp());
},
(error, stackTrace) {
//没被我们catch的异常
reportErrorAndLog(makeDetails(error, stackTrace));
},
);
}关键点说明:
runZonedGuarded函数给执行对象制定了一个zone,zone 可理解是一个代码执行沙箱,它能捕获所有未处理的异常(包括同步与异步异常)。
FlutterError.onError是一个静态函数,可捕获Widget在build阶段发生的错误异常,我们对其进行重写,把异常信息进行上报处理。
最新更新
更多>>- B103三菱PLC通信基础及应用12-14
- Windows游戏编程大师技巧第二版
- Photoshop CS6完全自学教程(中文版)
- [从零开始学电路基础].刘建清.扫描版
- [从零开始学电路仿真Multisim与电路设计Protel技
- [从零开始学电气控制与PLC技术].刘建清.扫描版(1)
- [从零开始学电动机控制与维修技术].李建清.扫描版
- [从零开始学数字电子技术].李建清.扫描版
- [从零开始学CPLD和Verilog.HDL编程技术].李建清.
- 山东大学欧姆龙plc视频教程1-20
- 艺用人体造型图集视觉艺术的人体模特
- [说服力:工作型PPT该这样做] 张志.刘俊.包翔
- 《计算机组成原理》2018秋季B卷V1.0标准答案脱敏
- 《计算机组成原理》2017秋季A卷V1.1标准答案脱敏
- 2020秋季计算机组成原理试卷B(正题)答案脱敏
- 2019秋季计算机组成原理试卷A答案脱敏
- 工程设计题
- 教师使用--计算机组成原理实验报告模板.docx
- 教师使用--计算机组成原理实验常用问题.pdf
- 教师使用__头歌平台建立翻转课堂
- 简明电路分析基础李瀚逊
- 电路分析基础第四版课后习题答案
- 电路分析基础 (下册) (第4版)
- 电路分析基础 (上册) (第4版)
- ScarboroughFair斯卡布罗集市吉他谱
- MFC Windows程序设计(第2版)(2)
- JavaScript语言精粹(修订版)
- 《低压电工实用技术问答》(2)
- 《鸟哥的Linux私房菜》
- 计算机程序设计艺术 ( 第四卷)
- 计算机程序设计艺术(第二卷)
- 计算机程序设计艺术(第三卷)
- 计算机程序设计艺术(第一卷)
- 美国纽约摄影学院摄影教材(下册)
- 美国纽约摄影学院摄影教材(上册)
- Java核心知识
- Java核心基础
- Java 基础面试题总结
- Java 基础核心总结
- 第一行代码——Android
- Android第一行代码源码
- 火星时代-3ds Max&Sketchup室外建模火星课堂
- 火星时代-3ds Max&Sketchup室外建模火星课堂CD4
- 火星时代-3ds Max&Sketchup室外建模火星课堂CD3
- 火星时代-3ds Max&Sketchup室外建模火星课堂CD2
- 火星时代-3ds Max&Sketchup室外建模火星课堂CD1
- php和mysql web开发(第5版)完整源码
- PHP和MySQL WEb 5th
- Linux_UNIX系统编程手册(下)
- Linux_UNIX系统编程手册(上)
声明:本网站所资源均通过互联网收录,并提供大家免费学习使用,如果本站有侵犯权利人版权内容的请向本站投诉。
投诉邮箱:577982958@qq.com 一经核实,本站将立即删除相关收录作品。
© 2020 - 2026 www.JarlWeiJing.com 版权所有
