如何查找Flutter中SocketException对应的全部Http OS错误码?
Flutter SocketException错误码获取方法
这些错误码是平台相关的,底层对应各操作系统的系统错误码,获取途径如下:
分平台查看
- Android/Linux:对应Linux系统错误码,可查看Dart
dart:io库中的errno相关常量(如EHOSTUNREACH、EINVAL),或系统的errno.h头文件。 - iOS/macOS:对应BSD系统错误码,同样可通过
dart:io的相关常量,或系统<errno.h>文件查看。 - Windows:对应Win32错误码,可使用
dart:io中的对应常量,或参考Windows官方错误码定义。
Dart端便捷用法
直接导入dart:io,使用库中封装好的命名常量,不用硬记数字,还能保证跨平台兼容性:
import 'dart:io'; // 示例:处理不同网络异常 on SocketException catch (e) { if (e.osError?.errorCode == EHOSTUNREACH) { Navigator.pushReplacementNamed( MyApp.globalNavigatorKey.currentContext!, Routes.maintenanceScreen); } else if (e.osError?.errorCode == ENETDOWN) { Navigator.pushNamed( MyApp.globalNavigatorKey.currentContext!, Routes.noInternet); } }
注意:不要直接依赖错误码的数字值(比如你代码里的
8),不同平台同一错误的数字可能不一致,使用命名常量才是可靠的跨平台方案。
内容的提问来源于stack exchange,提问作者SwiftiSwift
相关产品推荐
相关产品推荐

