如何通过json格式的python中的flask应用程序在导入的文件中引发异常



我有一个flask_app.py,它有异常处理,

from flask import abort
@app.errorhandler(404)
def NotFoundError(e):
return jsonify(error=str(e)), 404
if INDEX_EXTENSION == '':
abort(404, description="Index Extension cannot be NULL")

如果我在POSTMAN中运行该应用程序,我会在POSTMAN响应体中收到预期的错误消息

{
"error": "404 Not Found: Index Extension cannot be NULL"
}

我正在从flask_app.py中的另一个utils.py导入函数,比如

from utils import loaddata

如果函数引发错误,我可以将函数放在flask_app.py内的try块中,将错误消息传递给的POSTMAN

在不将函数放入try块的情况下,是否可以将函数内部引发的异常作为jsonify消息而不是HTML格式发送到POSTMAN,例如,在函数内部我有

if len(data) == 0:
raise Exception('Null Data, Check Data Range')

这被传递到控制台作为";追溯(最近一次通话(:"在波斯曼作为

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Exception: Null Data, Check Data Range // Werkzeug Debugger</title>
<link rel="stylesheet" href="?__debugger__=yes&amp;cmd=resource&amp;f=style.css" type="text/css">
.....
.
.
.
.

有可能把它取消吗?

只需添加一个自定义错误处理程序,如:

def loaddata():
messages = []
# do stuff
if len(data) == 0:
messages.append('Null Data, Check Data Range')
return messages

然后在你的烧瓶中编码:

dofunc = loaddata() # dofunc equals to error messages with the codes in the function being already executed
# instead of abort
if len(dofunc) > 0:
return jsonify({'error': dofunc})

演示代码供您理解!

最新更新