Python - 干净的代码,没有实现异常?
Python - Clean Code, no implemented exceptions?
我正在开发一个 API,它允许对 python 指令的特定模式进行简单的数据操作。用户可以传递用作这些字典中的键的参数。例如:
def get_columns(self, name):
for ... in self.data[name]:
...
...
如果名称不在数据字典中,它应该抛出异常。
我的问题是:我需要添加这样的异常处理吗?字典本身会引发 KeyError。什么是更好的做法?
如果您希望函数只抛出一个 KeyError
而没有其他任何东西 ,则无需将其包装在 try except 语句中(这将是多余的,因为无论如何,异常都会向上传播调用堆栈)。
如果你想让它有一些其他的行为(例如,跳过 for 循环,return 一个专门的错误消息,也许 return 某种默认值),那就是你的时候想使用异常处理。
我正在开发一个 API,它允许对 python 指令的特定模式进行简单的数据操作。用户可以传递用作这些字典中的键的参数。例如:
def get_columns(self, name):
for ... in self.data[name]:
...
...
如果名称不在数据字典中,它应该抛出异常。
我的问题是:我需要添加这样的异常处理吗?字典本身会引发 KeyError。什么是更好的做法?
如果您希望函数只抛出一个 KeyError
而没有其他任何东西 ,则无需将其包装在 try except 语句中(这将是多余的,因为无论如何,异常都会向上传播调用堆栈)。
如果你想让它有一些其他的行为(例如,跳过 for 循环,return 一个专门的错误消息,也许 return 某种默认值),那就是你的时候想使用异常处理。