Python-干净的代码,没有实现的异常?

Python-干净的代码,没有实现的异常?,python,coding-style,Python,Coding Style,我正在开发一个API,它允许对python dict的特定模式进行简单的数据操作。用户可以传递在这些dict中用作键的参数。例如: def get_columns(self, name): for ... in self.data[name]: ... ... 如果名称不在数据目录中,则应引发异常 我的问题是:我需要添加这样的异常处理吗?dict本身会引发一个键错误。更好的做法是什么?如果您希望函数只抛出一个KeyError而不抛出任何其他内容,则无需将其包装在t

我正在开发一个API,它允许对python dict的特定模式进行简单的数据操作。用户可以传递在这些dict中用作键的参数。例如:

def get_columns(self, name):
    for ... in self.data[name]:
       ...
    ...
如果名称不在数据目录中,则应引发异常


我的问题是:我需要添加这样的异常处理吗?dict本身会引发一个键错误。更好的做法是什么?

如果您希望函数只抛出一个
KeyError
而不抛出任何其他内容,则无需将其包装在try-except语句中(这将是多余的,因为异常会以任何方式向上传播调用堆栈)


如果您希望它具有其他行为(例如,跳过for循环,返回专门的错误消息,可能返回某种类型的默认值),那么您就需要使用异常处理。

您想实现什么?谁来承担这个错误?让KeyError冒泡出来可能没问题,但是没有上下文来告诉你什么是最好的。如果你想向用户报告更直观的消息,你也可以处理它。