我有这样一个函数,该函数算下来会抛出几种不同的异常信息。除了用抛出异常的方式,还有一种就是返回状态码。
不知道我应该用抛出异常,还是用状态码来表示结果,这也是我困惑的原因,因为有的函数返回的状态码与抛出个不同。
第一次示例
import time
import json
import requests
def get_user():
url = 'http:/www.xxx.com'
# 网络异常
response = requests.get(url)
if response.status_code != 200:
# 状态码的异常
raise Exception
# 还有解析失败的异常
data = response.json()
if data['code'] != 200:
# 获取失败的异常
raise Exception
# 成功,返回结果
return data['xxx']
def main():
# 因为使用了抛出异常的方式,上面的结果只有成功才进行返回,失败或其他全部抛出异常。
try:
result = get_user()
print('你成功了')
except:
print('你失败了')
第二种示例
import time
import json
import requests
def get_user():
url = 'http:/www.xxx.com'
# 网络异常
try:
response = requests.get(url)
except:
return False
if response.status_code != 200:
# 状态码的异常
return False
# 还有解析失败的异常
try:
data = response.json()
except:
return False
if data['code'] != 200:
# 获取失败的异常
return False
# 成功,返回结果
return data['xxx']
def main():
# 因为使用了抛出异常的方式,上面的结果只有成功才进行返回,失败或其他全部抛出异常。
try:
result = get_user()
if result:
print('你成功了')
else:
print('你失败了')
except:
print('其他未能处理的异常信息')
现在困惑的是那种方式更能直接的表示、