在Flutter中捕获未处理的异常

3

我试图捕获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

我该如何捕获这个异常?

1个回答

2

好的,我解决了这个问题。我的一些初始化逻辑在runZoned块之外。我错误地认为runZoned内部只需要调用runApp。现在我把所有内容都放在runZoned里面了,现在它能够正确地捕获错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接