您好!欢迎光临云杰通信官网,本公司专业为企业提供SD-WAN云专线、企业国际网络加速、企业MPLS-VPN、等网络接入服务。

常见问题

99%的程序都没有考虑的网络异常

作者:云杰 发布时间:2021-04-07 08:43:17点击:

  绝大多数程序只考虑了接口正常工作的场景,而用户在使用我们的产品时遇到的各类异常,全都丢在看似 ok 的 try catch 中。如果没有做好异常的兼容和兜底处理,会极大的影响用户体验,严重的还会带来安全和资损风险。

  接口异常,通常可以分为以下三类:

  CGI 逻辑出错。 如调用方入参缺失类业务逻辑报错;

  服务不稳定。 如服务器不稳定导致 nginx 各类 500、502,cgi 路径调整导致的 404

  用户网络环境差。 如,网络不稳定、网速慢、运营商劫持等

  那么,我们在写代码时,如何快速的模拟这些接口异常,做好程序的兼容处理呢?

  今天向大家介绍网络调试神器 whistle 的网络异常调试方法,如果你还没用过 whistle,请参考《8102 年的程序员不需要 Hosts 和 Fiddler》。

  用户网络不稳定

  如果我们要模拟请求发出 10 秒后断网或网络不通的情况,可以通过 whistle 这样配置:

  */mock reqDelay://10000 enable://abort # 模拟 10 秒超时后网络不通

  让用户苦苦等待 10 秒,再报错的体验太糟糕。我们可以封装一个能配置超时时间的请求发送函数,同时把上面提到的错误异常都一起配置进来。

  这样,自定义的 myFetch 只需关注业务具体逻辑,针对不同的 catch error 做对应的处理。

  除以上提到的协议命令字外,**whistle 还支持 resSpeed 用于模拟低网速传输(单位:kb/s),tpl 协议则可以根据请求传入参数来动态模拟不同的数据。**在 Frames 面板,还可以对 WebSocket/Socket 请求进行暂停、延迟等网络异常的模拟。

新闻资讯
相关产品
在线客服
联系方式

热线电话

13631779516

上班时间

周一到周五

公司电话

13631779516

二维码
线