You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查找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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 14:40:24