Как обрабатывать случаи, когда список всегда должен иметь один элемент (индексерра против явного проверки)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как обрабатывать случаи, когда список всегда должен иметь один элемент (индексерра против явного проверки)

Сообщение Anonymous »

Я сомневаюсь в дизайне обработки ошибок. В этом случае заманчиво просто написать: < /p>
result = my_list[0]
< /code>
Риск, конечно, состоит в том, что если список пуст, он поднимет индексерр. Когда это произойдет, конечный пользователь не видит Traceback - вместо этого он просто видит общее сообщение, в котором говорится, что им связаться с нашим отделом, и мы получаем полную информацию об ошибке в Sentry.
, поэтому мой вопрос: < /p>
Должен ли я оставить код, как есть (my_list [0]), и позволить Sentry поймать ошибку, если что -то неожиданное происходит? это: < /p>
if len(my_list) != 1:
# Raise a business error (created by xml)
< /code>
Второй подход будет означать создание многих дополнительных ошибок, связанных с пользователем для случаев, которые, в принципе, никогда не должны происходить-случаи, которые больше похожи на ошибки, чем на действительные условия для бизнеса. < /p>
Как вы обычно обращаетесь с этим компромиссом? Позволяете ли вы обрабатывать непредвиденные ошибки (например, индексерр), или вы предпочитаете явно повышать контролируемые ошибки даже для сценариев, которые «никогда не должны случиться»?

Подробнее здесь: https://stackoverflow.com/questions/797 ... error-vs-e
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»