为什么在python中使用异常比javascript更容易接受
Why are using exceptions more acceptable in python than javascript
您可以在此处用其他语言替换"javascript"。基本上,我从阅读中发现,python积极鼓励使用异常和一系列if测试来管理代码。当"鸭子键入"时,通常会引用可读性以及外观更干净的代码
然而,通常在使用javascript或其他一些语言时,最佳实践似乎建议尝试"防御性编码",并尽可能多地使用if语句和返回类型,以避免使用异常。最常被引用的原因是,异常是一项非常昂贵的操作。
以下是一个示例:https://stackoverflow.com/a/8987401/2668545
- python是否面临与javascript相同的异常成本和最佳实践之所以如此,是因为可读性/可调试性而非性能
- python处理异常的方式与javascript或其他不建议使用异常的语言不同吗
- 我是不是误解了建议
- 还是别的什么
我对此的看法是,尽管Python是一种动态类型的语言,但它同时也是强类型的,请参阅此处的解释。这意味着,如果在调用层次结构的深处出现问题(比如试图将空字符串转换为整数、除以零等),解释器会引发一个中断,使调用图出现气泡。
Javascript和许多其他解释语言倾向于掩盖这些事情,并尽可能长时间地继续静默计算(垃圾)。从本质上讲,程序员必须防御Javascript本身。
因此,当用户定义的Python模块的行为与标准库模块和解释器本身相同时,它是一致的:实现预期结果或引发异常。
优点是:
- 提高了可读性:预期的操作序列不会与错误处理混合在一起
- 额外多态性。可以将任何对象作为函数参数传递,如果对象具有函数使用的属性/成员,事情就会解决。编写函数的程序员不必事先知道参数的确切类型(动态类型)。如果出现问题,将进行呼叫跟踪调查。防御检查可能过于严格,而且不能同时100%防弹
可读性和可扩展性的考虑可能比性能的考虑更重要。
相关文章:
- javascript函数,它接受两个输入:一个对象和一个键,并返回对象中该键的相应值
- Javascript Regexp-不接受空格,但应该接受
- 为什么在python中使用异常比javascript更容易接受
- 在javascript中接受十进制数字的Regex
- Eslint,如何在Javascript中接受const和arrow函数
- 在 Javascript 中接受 2 个输入值
- 如何在 javascript 中接受未签名的证书
- Javascript不接受我的函数参数
- Javascript regExp接受小数前12位和小数后两位
- 为什么我的 JavaScript 函数接受三个数组,而不是包含三个数组的数组
- Javascript是否接受getElementsByTagName中的路径
- Javascript不接受输入数字的值
- Javascript如何接受多个字符串输入并检查是否匹配
- Javascript函数接受数组和字符串作为参数
- Javascript:传递/接受参数到函数
- 与Java不同,Javascript regex接受不应该被接受的输入
- JavaScript regex接受带有逗号分隔符(千位)和点分隔符(小数)的数字
- 验证web url JavaScript以接受url条目google.com
- JavaScript 函数接受变量的正确方法是什么?
- Javascript不接受日期或字符串作为参数使用Razor和MVVM