• ※敲规范


    示例:页面布局要求返回数组对象,而实际情况没有按要求返回导致非自定义异常(即程序异常)抛出。

    • 格式要求:
      data:{ detail: [] }

    • 返回情况:
      1 data:{};
      2 data: { detail: null }
      3 data: { detail: {} }
      4 data: { detail: ’’ }

    • 报错内容:
      1 data.detail会找不到detail属性
      2 data.detail.length找不到length属性,即detail不是数组

    • 习惯
      1 返回数据为空,无法确定返回data是空对象,还是null,或者其他。如果不做校验则往下无法正常执行。
      2 取值会直接取所需要的一级,如data.detail,一旦data中不包含detail对象,则往下无法正常执行。
      3 在数据格式为数组的情况下,通常都会用到数组的长度属性,即array.length,如果没有检验数组,一旦格式不匹配,length则会抛出异常。

    • 解决方法:
      1 判断data是否存在detail属性:if(data.detail)
      2 判断data.detail是否为数组:utils.isArray(data.detail)
      3 加强检验,除了完全通过检验的步骤往下执行,其他的全部走容错机制。

    utils:

    isArray(array) {
       return Object.prototype.toString.call(array) === '[object Array]' ? true : false;
    }
    

    即使已经协商好交互结构,但在开发中还是要做好容错机制,不要太过于依赖协商的定义,从而导致不必要的问题影响用户体验。

    代码规范造,问题错误少。

  • 相关阅读:
    AC_9. 分组背包问题
    AC_8. 二维费用的背包问题
    AC_7混合背包问题
    AC_5. 多重背包问题 II
    AC_4. 多重背包问题 I
    AC_3. 完全背包问题
    小郡肝火锅点餐系统——测试部署发布
    Vue脚手架搭建
    归并排序-总结
    小郡肝火锅点餐系统——项目文档
  • 原文地址:https://www.cnblogs.com/min77/p/15433183.html
Copyright © 2020-2023  润新知