zoukankan      html  css  js  c++  java
  • ※敲规范

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

    • 格式要求:
      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;
    }
    

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

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

  • 相关阅读:
    Nginx 模块:--with-http_sub_status_module
    Nginx http请求&日志
    Nginx 目录和配置语法&DNS配置
    Nginx 全局配置
    Nginx 相关操作1
    Nginx入坑基础篇
    杂谈maven工程实践(3)
    杂谈maven工程类型(2)
    杂谈maven相关概念(1)
    Django
  • 原文地址:https://www.cnblogs.com/min77/p/15433183.html
Copyright © 2011-2022 走看看