Утверждения - отличная вещь, но ее нельзя путать с проверкой значения параметра/возвращаемого значения. Вы используете их в ситуациях, которые, как вы полагаете, не произойдут, а не в ситуациях, которые вы ожидаете, могут произойти.
Мое любимое место, чтобы использовать их в блоки кода, которые на самом деле не должно быть достигнуто - например, как default
случае в switch
-statement над перечисление, которое имеет case
для каждого возможного значения перечисления.
Общепринято, что вы можете расширять перечисление новыми значениями, но не обновлять все switch
-условия, связанные с перечислением, вы захотите узнать это как можно скорее. Неудачное и быстрое достижение - это лучшее, что вы можете пожелать в таких обстоятельствах.
Предоставлено, в тех местах вы обычно хотите что-то, что ломается в производственных сборках, а также. Но рекомендуется использовать принцип abort()
в таких условиях. Хорошая трассировка стека в отладчике дает вам информацию, чтобы исправить вашу ошибку быстрее, чем гадать.
Мне не нравится, как задан вопрос, как я его вижу, он говорит: «Я знаю лучше, если вы не согреете, я буду охотиться на вас» –
Ну, это явно субъективно. По-моему, это также пограничный аргумент, но я бы подождал и посмотрел, что обсуждается. – EBGreen
Я рад изменить его ... Я действительно хотел бы услышать хорошие рассуждения. Я не собираюсь драться. Извините, если это звучит агрессивно. вероятно, подавленные чувства от того, что они были вынуждены работать таким образом. –