为什么在python中使用异常比javascript更容易接受

Why are using exceptions more acceptable in python than javascript

本文关键字:javascript 易接受 异常 python 为什么      更新时间:2023-09-26

您可以在此处用其他语言替换"javascript"。基本上,我从阅读中发现,python积极鼓励使用异常和一系列if测试来管理代码。当"鸭子键入"时,通常会引用可读性以及外观更干净的代码

然而,通常在使用javascript或其他一些语言时,最佳实践似乎建议尝试"防御性编码",并尽可能多地使用if语句和返回类型,以避免使用异常。最常被引用的原因是,异常是一项非常昂贵的操作。

以下是一个示例:https://stackoverflow.com/a/8987401/2668545

  • python是否面临与javascript相同的异常成本和最佳实践之所以如此,是因为可读性/可调试性而非性能
  • python处理异常的方式与javascript或其他不建议使用异常的语言不同吗
  • 我是不是误解了建议
  • 还是别的什么

我对此的看法是,尽管Python是一种动态类型的语言,但它同时也是强类型的,请参阅此处的解释。这意味着,如果在调用层次结构的深处出现问题(比如试图将空字符串转换为整数、除以零等),解释器会引发一个中断,使调用图出现气泡。

Javascript和许多其他解释语言倾向于掩盖这些事情,并尽可能长时间地继续静默计算(垃圾)。从本质上讲,程序员必须防御Javascript本身。

因此,当用户定义的Python模块的行为与标准库模块和解释器本身相同时,它是一致的:实现预期结果或引发异常。

优点是:

  • 提高了可读性:预期的操作序列不会与错误处理混合在一起
  • 额外多态性。可以将任何对象作为函数参数传递,如果对象具有函数使用的属性/成员,事情就会解决。编写函数的程序员不必事先知道参数的确切类型(动态类型)。如果出现问题,将进行呼叫跟踪调查。防御检查可能过于严格,而且不能同时100%防弹

可读性和可扩展性的考虑可能比性能的考虑更重要。