未处理的异常:SocketException 颤动

如何解决未处理的异常: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

颤动通道稳定

颤振升级

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?