如何处理Flask错误处理程序的顺序

oxe*_*xer 3 python flask python-3.x

如何确保烧瓶错误处理程序获得最具体的异常?

通过一些简单的测试并查看源代码,烧瓶错误处理代码似乎只针对给定的异常类型而不是最具体的类型采用第一个寄存器错误处理程序。

我猜答案是在最后放置错误处理程序Exception

Mar*_*ers 5

错误处理程序遵循异常类MRO或方法解析顺序,并按该顺序查找处理程序。首先是特定的异常类型,然后是直接的父类,等等,一直到BaseExceptionand object

无需订购任何东西。如果您为注册了处理程序Exception,则该处理程序将用于找不到其他特定处理程序的任何异常。