Closed mywaiting closed 8 years ago
很高兴你发现了bug,我会很快修正。 开源的目的就是一种开发者和使用者共同发现,改善,推进 开源项目的前进。代码存在逻辑或功能的不足,或者bug是一件很正常的事情,随着代码越发复杂,这不能仅仅依赖开发者来维护。这也是为什么github有issue和pull request的原因,我欢迎各种各样为了提高项目可靠性而提出的解决方案和问题,但不欢迎携带各种情绪来指责开发者。谢谢。
@mqingyn 大过年的被呼起来修代码,稍微有点脾气了。忽略我吧。
把bug修好就好了~
请再仔细回顾一下你的用例,告知我,我未能复现,或许可能跟你使用的版本有关?
假如自己的settings中没有定义 default_handler_class,那么根据你的代码会进入:
https://github.com/mqingyn/torngas/blob/master/torngas/webserver.py#L91
翻看Tornado.web 的 ErrorHandler,该Handler有 status_code的参数,并且默认不带任何值,当URL无法匹配任何handler时且不定义404的URL时候,那么会让 Tornado出错,爆出 TypeError: initialize() take excectly 2 arguments (1 given) 的错误!!!
具体的修改不发PR给你了,就是把你的代码中 https://github.com/mqingyn/torngas/blob/master/torngas/webserver.py#L91 的 91行和 92行注释掉即可!!!
另外,请参考 Tornado自己的代码: https://github.com/tornadoweb/tornado/blob/master/tornado/web.py#L2007 将 default_handler_class设置为 Errorhandler 但是 https://github.com/tornadoweb/tornado/blob/master/tornado/web.py#L2008 设置默认的 404 status_code
你的代码中没有设置,因而报错!!!
请详细测试过你的代码啊!严谨一点好不好!要不我参考了你的这一段,目测这个 bug也只是一直在那里而已。根本没有人发现过!