未处理的异常:SocketException 颤动

问题描述

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

[VERBOSE-2:ui_dart_state.cc(177)] 未处理的异常:SocketException:主机查找失败:'subdomain.domain.com'(操作系统错误:提供节点名或服务名,或未知,errno = 8)。

遵循颤振文档 herehere

这是我的代码

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 (Channel master,1.22.0-10.0.pre.153,on Mac OS X 10.15.5 19F101,locale 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 运行时环境(构建 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 Studio 位于 /Applications/Android Studio.app/Contents • Flutter 插件版本 45.1.1 • Dart 插件版本 192.7761 • Java 版 OpenJDK 运行时环境(构建 1.8.0_212-release-1586-b4-5784211)

[✓] VS 代码(版本 1.52.1) • VS Code 位于 /Applications/Visual Studio 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

颤动通道稳定

颤振升级

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...