美文网首页
代码顺序的重要性

代码顺序的重要性

作者: Zzz_CH | 来源:发表于2018-11-07 17:20 被阅读20次

背景

在修改前辈留下来的代码时踩到一个坑。简单讲一下代码做了什么事:在 try/catch 里实例化多个类,并调用类的方法为其赋值,catch 到错误也不会中断,而是通过打日志的形式收集报错信息。

我需要在里面新实例化一个类,有样学样,上来就是一顿copy改,可是新增的类的某个属性总是不对,排查了半天才发现一个坑。

错误模拟

class Point {
  constructor(x, y) {
    this.x = x
    this.y = y
  }

  getX() {
    return this.x
  }

  setX(x) {
    this.x = x
  }
}

let p, cat
try {
  p = new Point(1, 2)

  cat = new Cat('胖虎')  // 这里实例化了一个不存在的类,用来模拟报错,实际情况比这个复杂

  p.setX(66)  //  这一行应该写在 `cat` 的前面,不然 `cat` 报错后直接中断下面语句的执行,导致这行语句没有执行

} catch (e) {
  console.log(e)
}

console.log(p.getX())

执行结果,x 没有被赋值成66,抛出错误导致程序中断,赋值语句没有执行

执行结果

正确的写法

class Point {
  constructor(x, y) {
    this.x = x
    this.y = y
  }

  getX() {
    return this.x
  }

  setX(x) {
    this.x = x
  }
}

let p, cat
try {
  p = new Point(1, 2)

  p.setX(66)  // 方法调用紧随实例后面,不受下面代码的影响

  cat = new Cat('胖虎')

} catch (e) {
  console.log(e)
}

console.log(p.getX())

执行结果,x 正确被赋值,错误也正常抛出

执行结果

总结

  1. 如果 catch 了错误又不抛出,可以在调试的时候把错误抛出,方便发现问题。
  2. 代码结构顺序和整洁性很重要。
  3. 如果出现这种傻瓜式错误,是该考虑重构代码了。

相关文章

  • 代码顺序的重要性

    背景 在修改前辈留下来的代码时踩到一个坑。简单讲一下代码做了什么事:在 try/catch 里实例化多个类,并调用...

  • 30 进阶:无缝轮播

    !important 不到万不得已不要用,有很多提升代码重要性的方法例如:改变代码顺序,越靠后越重要;改变选择器的...

  • 了解出生顺序,互动更加有效

    《正面管教》第三章“出生顺序的重要性”阅读心得 一、了解出生顺序的必要性和重要性。 (一)出生顺序...

  • 比(逻辑递进)

    在分类时采用逻辑递进的方式——时间、结构性和重要性,会让你的表达更清晰。 时间顺序 结构顺序 结构、重要性顺序

  • Vue基础3

    截图的显示顺序就是代码的顺序;html页面: js代码:

  • hive sql执行顺序

    mysq和hive的sql执行顺序对比 msyql语句执行顺序代码写的顺序: 代码的执行顺序: hive 语句执行...

  • 人生十有八九不如意,每个人都是如此吗?

    论出场顺序的重要性?

  • 重排序 VS 可见性 VS 原子性

    重排序 代码实际执行顺序和代码在 Java 文件中的顺序不一致,代码指令并不是严格按照代码语句顺序执行的,这就是重...

  • 如何向领导汇报工作?(3)

    重要性顺序就是按照事情的重要性,价值的大小等来排序。 比如汇报业务利润情况,你可以按重要性顺序,先汇报销售额高、利...

  • web前端 -- Day10 js基础

    代码流程控制 代码的执行过程,分为三种方式:顺序结构、分支结构、循环结构 1、顺序结构 代码执行的顺序,从上到下,...

网友评论

      本文标题:代码顺序的重要性

      本文链接:https://www.haomeiwen.com/subject/yjfvxqtx.html