未处理的异常:SocketException 颤动

Unhandled Exception: SocketException flutter

目标是从电子邮件中获取网站。我想在 try Catch 语句中捕获套接字异常,但没有捕获到以下错误并且没有打印语句。

[VERBOSE-2:ui_dart_state.cc(177)] 未处理的异常:SocketException:主机查找失败:'subdomain.domain.com' (OS 错误:nodename 或 servname提供或不知道,errno = 8).

遵循 flutter 文档 here and here

这是我的代码。

import 'package:http/http.dart' as http;

Future<void> getWebsite(email) async {
    try {
      // get domain from email
      String _dom = new RegExp(r"(?<=[@]).+").stringMatch(email);
      // Get response status code from url
      final response = await http.get("https://$_dom");
      // Set Domain
      response.statusCode == 200 ? setDomain("https://$_dom") : setDomain(null);
    } on SocketException catch (_) {
      print("socket error");
    } on HttpException catch (_) {
      print("http error");
    } on FormatException catch (_) {
      print("format exception");
    } catch (e) {
      print("any exception");
    }
}

这是 flutter doctor -v 的结果

[✓] Flutter(频道主控,1.22.0-10.0.pre.153,在 Mac OS X 10.15.5 19F101,语言环境 en-US) • Flutter 版本 1.22.0-10.0.pre.153 /Users/sean/developer/flutter • 框架修订版 2e643651a9(4 个月前),2020-09-11 23:07:03 -0400 • 引擎版本 16b900b63e • Dart 版本 2.10.0(构建 2.10.0-117.0.dev)

[✓] Android 工具链 - 为 Android 设备开发(Android SDK 版本 30.0.0-rc1) • Android SDK /Users/sean/Library/Android/sdk • 平台 android-29,构建工具 30.0.0-rc1 • Java 二进制文件位于:/Applications/Android Studio。app/Contents/jre/jdk/Contents/Home/bin/java • Java 版本 OpenJDK 运行时环境(build 1.8.0_212-release-1586-b4-5784211) • 已接受所有 Android 个许可。

[✓] Xcode - 为 iOS 和 macOS 开发 (Xcode 11.3) • Xcode 在 /Applications/Xcode.app/Contents/Developer • Xcode 11.3,内部版本 11C29 • CocoaPods 版本 1.9.1

[✓] Android Studio(3.6 版) • Android 工作室位于 /Applications/Android 工作室。app/Contents • Flutter 插件版本 45.1.1 • Dart 插件版本 192.7761 • Java 版本 OpenJDK 运行时环境(build 1.8.0_212-release-1586-b4-5784211)

[✓] VS 代码(版本 1.52.1) • /Applications/Visual Studio Code 上的 VS Code。app/Contents • Flutter 扩展版本 3.18.0

[✓] 已连接设备(可用 1 个)
• iPhone 11 Pro(手机) • E280A6FB-4AF7-4409-B79E-FA4E652C4FE0 • ios • com.apple.CoreSimulator.SimRuntime.iOS-13-3(模拟器)

• 未发现问题!

这是我在控制台中看到的内容

Launching lib/main.dart on iPhone 11 Pro in debug mode...
Running pod install...
Running Xcode build...
Xcode build done.                                           552.8s
Waiting for iPhone 11 Pro to report its views...
Debug service listening on ws://127.0.0.1:58043/ZgdnQH-v_BY=/ws
Syncing files to device iPhone 11 Pro...
[VERBOSE-2:ui_dart_state.cc(177)] Unhandled Exception: SocketException: Failed host lookup: 'av.abbott.com' (OS Error: nodename nor servname provided, or not known, errno = 8)
#0      _NativeSocket.lookup.<anonymous closure> (dart:io-patch/socket_patch.dart:502:9)
#1      _rootRunUnary (dart:async/zone.dart:1198:47)
#2      _CustomZone.runUnary (dart:async/zone.dart:1100:19)
#3      _FutureListener.handleValue (dart:async/future_impl.dart:143:18)
#4      Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:696:45)
#5      Future._propagateToListeners (dart:async/future_impl.dart:725:32)
#6      Future._completeWithValue (dart:async/future_impl.dart:529:5)
#7      Future._asyncCompleteWithValue.<anonymous closure> (dart:async/future_impl.dart:567:7)
#8      _rootRun (dart:async/zone.dart:1190:13)
#9      _CustomZone.run (dart:async/zone.dart:1093:19)
#10     _CustomZone.runGuarded (dart:async/zone.dart:997:7)
#11     _CustomZone.bindCallbackGuarded.<anonymous closure> (dart:as<…>

我切换到稳定频道解决了这个问题。

https://flutter.dev/docs/development/tools/sdk/upgrading#switching-flutter-channels

flutter 通道稳定

flutter升级

当用户互联网连接速度慢或关闭时出现此异常。所以请检查设备连接