Ошибки программирования это как раз такие кейсы, когда функция возвращает

expected и вызывающий код не проверяя лезет в value. Что вы в случае ошибки в expected делаете? Дефолтное значение возвращаете?

9 ответов

29 просмотров

Я уже отвечал на этот вопрос

Aleksei Kuznetsov-Kuznetsov Автор вопроса
Nikita Khrapov
Я уже отвечал на этот вопрос

Это не правда. Что сделает expected.value если в нем ошибка? Сгенерит репорт и вернет дефолтное значение?

Aleksei Kuznetsov Kuznetsov
Это не правда. Что сделает expected.value если в н...

Ты должен проверять значение возвращенное из функции Если ты этого не делаешь, ты работаешь не по пайплайну Но если это все таки произошло и на ревью не отловили, то там будет стандартный низкоуровневый ассерт, который все так же сгенерит репорт, но дропнет программу

Aleksei Kuznetsov-Kuznetsov Автор вопроса
Nikita Khrapov
Ты должен проверять значение возвращенное из функц...

Это и есть ошибки программирования о которых шла речь

Aleksei Kuznetsov Kuznetsov
Это и есть ошибки программирования о которых шла р...

Нет, это очень частный случай, где ты не используешь предложенный механизм обработки ошибок и естественно огребаешь с фолбеком к более худшему способу с терминейтом В 95 процентах оставшихся ошибок все будет работать без краша, разве этого мало

Aleksei Kuznetsov-Kuznetsov Автор вопроса

Ошибки программирования это нарушения контрактов/пре/пост-кондишнов. То что ты называешь "работает не по пайплайну" в том числе. Если у тебя там мог сдохнуть объект и контракт это допускает и тебе надо как это захендлить эту ситуацию это не ошибка программирования.

Nikita Khrapov
Нет, это очень частный случай, где ты не используе...

Есть еще ресерч 10 летней давности на тему того что в больших системах 92% катострофических отказов происходят из-за кода который неверно обрабатывает некритические ошибки. https://www.usenix.org/system/files/conference/osdi14/osdi14-paper-yuan.pdf

Aleksei Kuznetsov Kuznetsov
Ошибки программирования это нарушения контрактов/п...

Ты можешь называть это как угодно. Я смотрю на цифры количества крашей и багов до и после, и ситуация меня вполне устраивает. А это главное.

Похожие вопросы

Обсуждают сегодня

Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
Всем привет. Хотел бы написать для себя свою ос. Причины: 1) нужен опыт в чем-то 2) будет меньше весить 3) свое, но там будут свои задумки Я понимаю что нужно писать для всег...
Shadow Akira
18
А какие существуют способы обработки ошибок выделения памяти в ядре? Т.е., допустим, есть функция, которая возвращает адрес свободной страницы в физической памяти и диапазон в...
disba1ancer
51
Всем привет! Скажите, никто не пытался уменьшить размер процесса ssl, которые ассоциируется с открытым соединением (не помню точное название этого процесса, но там была какая-...
Алексей
20
5? да там все 10
Boris Vinogradov
12
Через бот апи возможно получить ID стикерпака? Не ссылку.
Vexylon [АФК до 09.09]
5
Why would I rent an account if it’s not mine?
Snr Engineer
3
У меня вопрос: для разработки современных (не учебных) ОС, лучше использовать уже имеющиеся архитектурные решения или нужно будет разрабатывать что-то принципиально новое?
Alexander
5
Всем привет. Запускаю snmp_server вызовом snmp:start() и получаю вот это: {bad_return, {{snmp_app,start,[normal,[]]}, {'EXIT', {{badmatch, {error, {{shutdown, {failed_to_sta...
Δημήτηρ
9
@berkus @diaevd как бы вы сделали dependency injection но без шаблонов?
Boris Vinogradov
5
Карта сайта