小智 16
有一些我很感兴趣的事情:
我希望异常链接能够抓住.由于下面介绍的反模式而丢失异常堆栈跟踪一直是我的烦恼:
try:
doSomething( someObject)
except:
someCleanup()
# Thanks for passing the error-causing object,
# but the original stack trace is lost :-(
raise MyError("Bad, bad object!", someObject)
Run Code Online (Sandbox Code Playgroud)
我知道,我知道,在原始异常中添加一些上下文信息并保留原始堆栈跟踪是可能的,但它需要一个非常丑陋的黑客.现在你可以(而且应该!)只是:
raise MyError("Bad, bad object!", someObject) from original_exception
Run Code Online (Sandbox Code Playgroud)
并轻松获得以上两者.所以,作为我对丢失堆栈痕迹的神圣使命的一部分:
伙计们,在重新加注异常时不要忘记from子句!谢谢.
坦率地说,没有一个.虽然我可能会发现自己使用了一些新的语法,但我主要使用Python来实现快速简单的脚本和正则表达式.
我认为新功能可以让很多人轻松搞好一些小东西,而且对于一些人来说很容易.但是,我对许多人最终会在生产力方面获得巨大收益的说法持怀疑态度.
简而言之,我认为这些变化会让整体事情变得更好,但不要指望任何奇迹.