javascript - Javascript LBYL 还是 EAFP?
问题描述
有两种编程方法:EAFP(比许可更容易请求宽恕)和LBYL(在你跳跃之前先查看)。第一种方法假定做一些可能导致异常的事情,然后处理这个异常,第二种方法假定使用if
语句。Javascript EAFP还是LBYL呢?
解决方案
这篇 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 类型的对象。尝试从这些错误中恢复将比提前进行所需的检查以确保您的对象对于您尝试对其执行的操作有效要困难得多。
推荐阅读
- java - 如何从 Java Functions Worker 获取 Java 堆?
- python - 在 pandas 数据框中形成大词组
- node.js - 如何在 NodeJS 上使用本机 Ajax 通过 Post 请求发送对象
- sql-server - 将具有复合主键引用的列添加到分层表
- r - 删除 Y 轴标题后图表发生变化
- symfony - FOSOAuthServerBundle + Amazon Alexa:如何使用 Access Token 手动验证用户身份?
- bash - Bash:如何每次从值中减去而不让它重置回原来的值?
- c# - C# - 当标签之间的空格被分隔时反序列化
- python - 使用fuzzywuzzy时如何更有效地比较字符串?
- c++ - 仅传递第二个模板参数的方法