首页 > 解决方案 > Javascript LBYL 还是 EAFP?

问题描述

有两种编程方法:EAFP(比许可更容易请求宽恕)和LBYL(在你跳跃之前先查看)。第一种方法假定做一些可能导致异常的事情,然后处理这个异常,第二种方法假定使用if语句。Javascript EAFP还是LBYL呢?

标签: javascriptcode-structure

解决方案


这篇 reddit 帖子的最佳答案很好地总结了我对此的看法,但我会给出我的 2 位。

在你跳跃之前一定要看看。

考虑这段代码。

const thing = {};

try {
  thing.forestryServices.apply();
}
catch (e) {
  console.log(e);
}

thing.forestryServices = {
  apply: "surprise goombas"
}

try {
  thing.forestryServices.apply();
}
catch (e) {
  console.log(e);
}

两种情况下返回的错误都是 Error 类型的对象。尝试从这些错误中恢复将比提前进行所需的检查以确保您的对象对于您尝试对其执行的操作有效要困难得多。


推荐阅读