我有一个测试,确保API返回成功。如果是,它继续,如果不是,它不会。但问题是,有时候这种结果不会以正确的类型回归。现在我正在测试它:
if response['result'] == "success":
但如果另一端出现问题,我会返回一个NoneType对象,然后脚本崩溃。我应该:
#solution A, nested IFs checking lots of conditions
if type(response['result']) == "string": #not real code
if response['result'] == "success:
或者:
#solution B
try:
if response['result'] == "success":
etc
except:
print("Something terrible happened.")
或者完全做其他事情更好吗?
答案 0 :(得分:6)
错误处理是一个非常好的解决方案。如果您期待特定类型并且没有得到它,那么它肯定是异常。
(您可能还希望(防御性地)不要假设response
类似dict的对象将具有名为result
的密钥。您可以使用get
方法执行此操作。)
try:
if response.get('result', '') == "success":
…
except AttributeError: # Use AttributeError if you use the get method, TypeError if you use regular dict subscripting.
# response was certainly not successful
答案 1 :(得分:3)
if response is not None and response['result'] == 'success':
# Success
else:
# Failure