'面向对象'python

时间:2016-03-22 07:28:39

标签: python error-handling

所以我有一个python函数:

def send_data():
    return instance.handleData(otherinstance.getData())

在一个类中我有getData,一个获取数据并在dict中返回它的函数:

def getData(self):
    data = self.makeRequest('data')
    latestData = data['values'][0]
    return latestData

之后,dict(latestData)将在函数形式的另一个类中使用,其值将被正确格式化:

def handleData(self, data):
    handledData = {}
    handledData['name'] = data.get('display', 'display not set')
    # some other stuff...       
    return handledData

最后,来自handleData的返回值将由send_data传递给JavaScript,如果没有数据/数据不存在,我应该在我的html页面上显示正确的错误消息完整。

我想知道错误处理的最佳方法是什么,我应该首先在KeyError中引发getData()例外吗?如果是这样,那么应该将什么传递给handleData?只是一个错误代码,意味着没有数据,将被发送回send_data?问题是,我必须知道JavaScript中的错误,以显示正确的消息(例如'找不到值')

1 个答案:

答案 0 :(得分:0)

假设您将字符串传递给JV没有问题,我个人会在Python中处理错误:

try:
    # do something
except ValueError: # give a specific error if possible
    # exception()
    # possibly passing an error message to JV
else:
    # do other something

,请查看此link以了解错误和例外情况。

而且我只是将一个字符串传递给JV,确保在JV中没有错误(或除了处理字符串之外的错误管理)。当然,这是假设您的大部分代码都是Python的。

我的观点基于我自己的软件设计偏好。我宁愿让Python处理Python错误,而不是让JV解释Python错误(尽管它似乎确实有效)。

我认为如果你把它混淆得很多,你的可读性就会变差,而且JV开发人员使用代码会更加困难(假设它不熟悉Python)。结论:如果我的前线在JV中,我会尽可能隐藏Python。