flutter - 在 Flutter 中捕获未处理的异常
问题描述
我试图在我的 Flutter 应用程序中捕获所有未处理的异常。这是我的 main.dart:
void main() async {
FlutterError.onError = (FlutterErrorDetails details) {
print("FlutterError.onError");
};
try {
runZoned<Future<void>>(
() async {
runApp(App());
},
onError: (dynamic error, StackTrace stackTrace) {
print("runZoned.onError");
},
);
} catch (ex) {
print("main.catch");
}
}
...但是,这些方法都不起作用,并且我的应用程序在 iOS 模拟器中运行时输出以下内容:
[VERBOSE-2:ui_dart_state.cc(166)] Unhandled Exception: SocketException: OS Error: Connection refused, errno = 61, address = localhost, port = 57562
...我如何捕捉到这个异常?
解决方案
好的,我已经解决了这个问题。我的一些初始化逻辑在runZoned
块之外。我错误地认为里面需要runZoned
的只是调用runApp
. 我已经把所有东西都放在里面了runZoned
,它现在可以正确地捕捉到错误了。
推荐阅读
- java - 启动 Springboot 时 bean 中的 StackOverflowError
- linux - 大括号中的 Bash 脚本奇怪的转义和磅符号
- python - 如何检查 MongoEngine 中的查询返回空对象?
- java - 从嵌套的 json 数据返回索引值
- python - Spotfire 按需更新数据表
- python-3.x - 使用设定的距离和时间减速到停止
- java - Akka grpc 可以使用来自非 Akka 服务的数据吗
- python - 动态修改 mininet 中链路的带宽
- ios - 将包含日期的字典的 NSArray 排序为字符串
- r - 文本挖掘:组词之间的成对相关性