之前有人问过,但答案是建议print
这不好。
Python: Handle JSON Decode Error when nothing returned
鉴于此:
class BitbucketError(Exception):
pass
try:
response = requests.get('https://bitbucket.org/.......')
return response.json()['data']
# because JSONDecoderError inherits from ValueError
except (json.JSONDecoderError, ValueError) as e:
raise BitbucketError(response.status_code)
没关系。但是如果我在另一个项目中使用这个模块,我在哪里
# save to dabase, example 1
raw_code = mymodule.bitbucket.file(...)
db.save(raw_code)
# return json back to user (api server, example 2)
raw_code = mymodule.bitbucket.file(...)
return {'data': raw_code}
我确信我想在上面的代码段中捕获异常。但问题是,我应该让原始的传播或定义一个例外吗?
我正在尝试查看如何正确处理错误,因为错误可能是由404,405甚至500引起的。
希望这个问题有道理。
答案 0 :(得分:1)
这在很大程度上取决于第二段代码的上下文。例如,它是否适用于您的应用程序中的某些内部自动化?在这种情况下,捕获异常并向组织中可以处理它的人发送类似于Djangos错误邮件(具有完整堆栈跟踪,变量等)的电子邮件可能是个好主意。如果它适用于某些最终用户应用程序,您可能希望记录错误(例如记录到邮件)并向用户提供某种反馈。在这种情况下,您将需要以不同的方式处理不同的错误代码。