Python中的raise语句

2013-04-08 23:36:23 +08:00
 hhrmatata
raise语句不是作为引起异常的吗?
web.py的cookbook中的这个rasie语句是什么用法呢?

    class SomePage:
        def POST(self):
            # Do some application logic here, and then:
            raise web.seeother('/someotherpage')
6880 次点击
所在节点    Python
6 条回复
binux
2013-04-08 23:40:46 +08:00
一个函数的返回除了return就是raise了
如果不想return状态太多,借用一下很正常
顺带,tornado是修改类状态
paloalto
2013-04-08 23:41:13 +08:00
跳转 303还是301来着?记不清了。
paloalto
2013-04-08 23:45:33 +08:00
以前遇到过一个类似的问题:
“web.py的raise web.seeother()”:
http://www.douban.com/note/259251417/
dreampuf
2013-04-09 01:23:34 +08:00
return, continue, break, yield, raise 本质都是为流程控制服务,你可以在WSGI函数里找到这种异常流程的处理。
hhrmatata
2013-04-09 10:10:24 +08:00
我就先这么理解吧:web.seeother('/someotherpage')返回了一个303异常。
Zhongwei
2013-04-09 11:00:45 +08:00
看一下 https://github.com/webpy/webpy/blob/master/web/webapi.py 里 seeother 的实现就一目了然了。seeother 继承自 class Redirect(HTTPError)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/65316

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX