Python - Чистый код, нет реализованных исключений? - PullRequest
1 голос
/ 16 марта 2020

Я работаю над API, который позволяет просто манипулировать данными для определенной схемы python dicts. Пользователь может передавать параметры, которые используются в качестве ключей в этих диктовках. Например:

def get_columns(self, name):
    for ... in self.data[name]:
       ...
    ...

Если имя не указано в данных, оно должно вызвать исключение.

У меня вопрос: нужно ли добавлять такую ​​обработку исключений? Диктовка вызовет само KeyError. Какая практика лучше?

1 Ответ

2 голосов
/ 16 марта 2020

Если вы хотите, чтобы функция просто выдавала KeyError и ничего больше , нет необходимости заключать ее в оператор try кроме оператора (это будет избыточно, поскольку исключение будет распространяться вверх по стеку вызовов в любом случае).

Если вы хотите, чтобы оно имело другое поведение (например, пропустите для l oop, верните специальное сообщение об ошибке, возможно, вернете какое-то значение по умолчанию), тогда вы бы хочу использовать обработку исключений.

...