Мне нравится добавлять в свои сообщения об ошибках информацию о данных, которые вызывают ее, чтобы помочь с отладкой / пониманием источника ошибки. Я обычно делаю это и с предупреждающими сообщениями.
Однако в настоящее время мне интересно, является ли добавление информации о данных c в предупреждающие сообщения хорошей идеей. Это связано с тем, что предупреждающие сообщения с точно таким же текстом подавляются, но добавление информации о данных c означает, что каждый раз, когда они попадают в них, они будут выдаваться.
Конкретный пример, который заставил меня задуматься об этом: случай, когда я добавляю изображение в структуру данных, и это изображение может иметь идентификатор видео. Если это видео еще не зарегистрировано, я хочу предупредить пользователя о том, что идентификатор не существует, но я не хочу, чтобы этого не произошло.
Итак, у меня есть два способа форматирования сообщения :
msg = ('Adding image-id={} to '
'non-existing video-id={}').format(imgid, vidid)
warnings.warn(msg)
и
msg = 'Adding image to non-existing video'
warnings.warn(msg)
В первом случае вы получите дополнительную информацию, но если вы добавляете изображения в al oop, он распечатывает много текста. Во втором случае вы получаете указание на то, что что-то может быть не так, когда вы впервые делаете такой звонок, но дополнительной информации нет.
Есть ли руководство по передовой практике, какое из них обычно предпочтительнее? Мне кажется, что это несколько стилистично c, но мне было бы интересно узнать, есть ли у других людей мысли / мнения по поводу этого компромисса.