mqingyn / torngas

BSD 3-Clause "New" or "Revised" License
437 stars 137 forks source link

default_handler_class 导致的出错 #11

Closed mywaiting closed 8 years ago

mywaiting commented 8 years ago

假如自己的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也只是一直在那里而已。根本没有人发现过!

mqingyn commented 8 years ago

很高兴你发现了bug,我会很快修正。 开源的目的就是一种开发者和使用者共同发现,改善,推进 开源项目的前进。代码存在逻辑或功能的不足,或者bug是一件很正常的事情,随着代码越发复杂,这不能仅仅依赖开发者来维护。这也是为什么github有issue和pull request的原因,我欢迎各种各样为了提高项目可靠性而提出的解决方案和问题,但不欢迎携带各种情绪来指责开发者。谢谢。

mywaiting commented 8 years ago

@mqingyn 大过年的被呼起来修代码,稍微有点脾气了。忽略我吧。

把bug修好就好了~

mqingyn commented 8 years ago

请再仔细回顾一下你的用例,告知我,我未能复现,或许可能跟你使用的版本有关?