2016-01-22 21 views
0

我在提供一个json的api中提出了一个不好的请求。这个想法是:提出了一个不好的请求json

if True: 
    raise BadRequest({'error_message' : 'stuff', 
         'suggestions' : 'other stuff'}) 

很明显,这将无法正常工作,但我不确定是否违背返回带有错误请求的json的逻辑。

回答

1

您以混淆的方式使用术语“返回”和“提升”。他们有非常精确的含义。

您只能“引发”Exception的子类。 “raise”语句之后程序的执行路径遵循Python异常处理的规则。引发Exception的函数不会返回。你可以创建一个Exception的子类,其中的参数是一个字典,如你的例子。这将与JSON对象相似,但如果您想使用它的raise语句,它仍然必须是Exception的子类。

您可以从函数中“返回”任何类型的对象。程序的执行路径遵循Python函数调用和返回的规则。返回的对象可能是JSON对象,而对象的内容可能是错误消息。但是,如果你的函数返回这种类型的对象,你的客户代码必须检查这个对象以确定发生了错误。