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

如何从NSError中获取非本地化描述或键用于API错误分析?

如何从NSError中获取非本地化的错误键或描述?

我需要对API请求返回的错误进行分组并用于数据分析,但目前从NSError中获取的所有描述或键似乎都是本地化后的内容。

我已尝试以下两种方式:

  • 获取error.code : error.domain——但由于域名大多相同,实用性不高
  • 获取error.userInfo[NSDebugDescriptionErrorKey] : error.userInfo[NSURLErrorKey]——两者均为nil,同样帮助不大

目前我认为这可能无法实现,但仍希望听取其他思路。


可行思路整理

  • 检查自定义错误扩展字段
    如果是团队自研API的错误,大概率会在userInfo中添加自定义非本地化字段,比如"APIErrorRawKey"或"OriginalErrorCode"这类标识,直接读取对应值即可。不少第三方网络库(如AFNetworking)封装错误时也会加入这类原始信息。

  • 解析底层错误的原始响应
    尝试从userInfo[NSUnderlyingErrorKey]获取底层错误,这个错误可能携带服务器返回的原始响应体。解析响应体后,就能拿到后端返回的原始错误码、错误类型字符串等非本地化内容,这些是最适合用于数据分析分组的标识。

  • 精细化利用error.code与domain组合
    即便域名重复,结合error.code和具体请求场景也能做有效分组。比如NSURLErrorDomain下,-1001代表请求超时、-1003代表无法解析主机,这类错误码本身就是非本地化的标准标识,完全可以作为分组依据。

  • 在网络层封装自定义错误信息
    如果现有错误返回缺乏足够的非本地化字段,可以在网络请求的统一处理层做封装:当收到服务器错误响应时,先提取原始的错误标识(比如后端返回的error_type字段),将其存入自定义NSError的userInfo或子类属性中,后续分析直接读取该字段即可。


内容的提问来源于stack exchange,提问作者Anastasia Veremiichyk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 03:32:37