Closed. This question needs details or clarity。它当前不接受答案。
想改善这个问题吗?添加详细信息,并通过editing this post阐明问题。
7年前关闭。
Improve this question
我有一个函数不返回,我想通过引发异常进行重定向
我有以下代码:
和功能
但是有错误
也有错误。
错误无法提交消息:u'RedirectRequired'
错误无法提交消息:u'RedirectRequired'
现在:
想改善这个问题吗?添加详细信息,并通过editing this post阐明问题。
7年前关闭。
Improve this question
我有一个函数不返回,我想通过引发异常进行重定向
我有以下代码:
class RedirectRequired(Exception):
def __init__(self, url):
self.url = url
和功能
def Foo(x):
hede = {'hodo':5}
try:
hede.get('hodo').get('hede')
except AttributeError, e:
logger.error(e.message)
raise RedirectRequired('/')
但是有错误
No exception Supplied
。有关重定向或引发异常的任何想法,如下所示?也有错误。
错误无法提交消息:u'RedirectRequired'
错误无法提交消息:u'RedirectRequired'
最佳答案
问题在于RedirectRequired
异常的构造函数构造了一个RedirectRequired
异常来引发它,从而构造了RedirectRequired
异常来引发它,从而…
每次通过这种无限递归,您都会记录e.message
,每次都会是同一条消息。
在其中大约1000个之后,您将点击RuntimeError: maximum recursion depth exceeded
。
您最可能真正想要的是两件事:RedirectRequired
异常类型,以及使用它的Redirector
包装器类或redirect
包装器函数。像这样:
class RedirectRequired(Exception):
pass
class Redirector(object):
def __init__(self, url):
self.url = url
hede = {'hodo':5}
try:
hede.get('hodo').get('hede')
except AttributeError, e:
logger.error(e.message)
raise RedirectRequired('/')
现在:
>>> r = Redirector('abc')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 8, in __init__
__main__.RedirectRequired: /
关于python - 在非返回功能中引发重定向,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20132947/
10-09 13:36