今天我跑了反对的事实,即sys.exit()
从儿童线程调用不杀的主要过程。我以前不知道这一点,这没关系,但我需要很长时间才能认识到这一点。这将有可能挽救太多太多的时间,如果sys.exit(msg)
会打印msg
到stderr
。但事实并非如此。Python:为什么从线程调用`sys.exit(msg)`不会打印`msg`到stderr?
原来,这是不是在我的应用程序中的真正的bug;它以一种有意义的错误方式称为sys.exit(msg)
- 但我无法看到这一点。
In the docs for sys.exit()
it is stated: “[...]的任何其他对象被打印到sys.stderr
和结果在1退出代码”
这不用于从子线程的调用真实,其中sys.exit()
明显表现为thread.exit()
: “提高SystemExit例外,如果没有捕获,这将导致线程退出默默。”
我认为当一个程序员想要sys.exit(msg)
打印错误消息,那么这应该只是印刷 - 独立于它被称为地方。为什么不?我目前没有看到任何理由。至少应该在sys.exit()
的文档中提示该消息不是从线程打印的。
您认为如何?为什么错误消息隐藏在线程中?这有意义吗?
最好的问候,
扬菲利普Gehrcke
你给了我一个很好的建议,再次;) 顺便说一句:这是如此之大,你在这里分享你的知识。我发现你目前花大部分时间用纯Python专家来填补这个平台!这是社区需要的,但这不是理所当然的事情。非常非常感谢你! Jan-Philip – 2009-07-30 21:46:29