awesome-everything EN
↑ Обратно к восхождению

Базовый CS с нуля

Когда программа падает: тест на припоминание

Суть Вопросы на свободное припоминание по всему юниту. Сначала ответь своими словами, затем открой модельный ответ и сравни.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на middle-высоте — в небе
◷ 14 min

Припоминание сильнее перечитывания. Для каждого вопроса скажи или запиши полный ответ по памяти, прежде чем открыть модельный — именно усилие припоминания закрепляет различения: условие против механизма, громкое против тихого, рассуждение против угадывания.

Цель

Восстанови костяк юнита, не подглядывая: error против exception, как раскручивается стек, что такое trace и как его читать, почему undefined behaviour — опасный случай, и что делает debugging рассуждением, а не угадыванием.

Вспомните перед уходом
  1. 01
    В чём разница между error и exception?
  2. 02
    Пройди по тому, что делает рантайм, когда exception поднят и обработчик не найден.
  3. 03
    Что такое stack trace, где в нём throw site и как его читать?
  4. 04
    Что такое undefined behaviour и почему оно опаснее defined error?
  5. 05
    Почему детерминизм машины делает debugging рассуждением, а не угадыванием?
  6. 06
    Назови три приёма проверки гипотезы при debugging и объясни, почему throw site не всегда есть причина.
Итог

Если ты смог восстановить каждый ответ по памяти, ты держишь костяк юнита: error — условие, exception — механизм, который останавливает поток и раскручивает стек в поиске обработчика; stack trace — этот стек, замороженный на throw, читаемый сверху вниз, throw site наверху; undefined behaviour — опасный тихий сбой без поднятия error; а поскольку машина детерминирована, debugging — это рассуждение: сформулируй гипотезу, сузь диапазон, прочитай trace, проверь состояние и иди по цепочке за throw site к реальной причине, прежде чем менять строку.

Продолжить восхождение ↑Когда программа падает: чтение кода и trace
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.