我正在编写一个Flask应用程序,其中我调用了一个可能返回403的方法。我认为以下代码可以适当地处理错误:
try:
connection = myLib.Login(username, password)
except urllib.error.HTTPError as err:
abort(err.code)
但这似乎行不通。万一myLib.登录返回403得到以下结果:
^{pr2}$如何捕获此错误并返回403?在
在一个普通的Python脚本中,异常触发得很好,所以我怀疑这可能与flask和/或uwsgi有关。在
例外情况正如期进行。我的devops链就是问题。在
这很可能是
是异步的。myLib.登录可能会产生子线程。父母不能捕捉到在孩子身上提出的例外,因为他们有自己的背景。 有关详细信息,请参阅Catch a thread's exception in the caller thread in Python。在
编辑:
如果要等待(“块”)直到建立连接,然后决定是继续还是中止,可以使用queues在线程之间建立通信:
^{pr2}$在队列.get阻塞设置为true(默认值)的()将等待队列中有可用的项。处理HTTPError需要在登录部分进行,然后在put()中进行。您还可以为get()设置一个超时参数,该参数将导致在时间结束后队列中没有元素时引发异常。在
相关问题 更多 >
编程相关推荐