Песочница

Каталог ошибок и предупреждений

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

Как рассуждать

  • E300–E340 охватывают несвязанные имена, применение, арность, присваивание, пары, диапазоны, типы, числа, контексты значений, letrec, пользовательские ошибки, исключения и использованные продолжения выхода.
  • E1xx относится к чтению и статической нормализации; W2xx/W3xx — к упорядоченным предупреждениям.
  • ResourceLimit намеренно находится вне перехватываемых E3xx и сообщается отдельным исходом.

Стабильные коды выполнения

КодУсловиеФаза / перехват
E300 / E303несвязанное чтение / set!выполнение / перехватывается
E301 / E302применение непроцедуры / арностьвыполнение / перехватывается
E310 / E311 / E312пара или список / диапазон / тип примитивавыполнение / перехватывается
E313 / E314деление на ноль / не конечный результатвыполнение / перехватывается
E320 / E321неверное число значений / раннее чтение letrecвыполнение / перехватывается
E330 / E331 / E332пользовательская ошибка / неперехваченный raise / возврат обработчикавыполнение / зависит от сигнала
E340продолжение выхода уже не активновыполнение / перехватывается после потребления
W330устаревающий вызов %; предпочтителен moduloпредупреждение выполнения / один раз на место вызова
W331устаревающий вызов list-first или list-rest; предпочтительны first и restпредупреждение выполнения / один раз на место вызова
ResourceLimitобъявленный предел рекурсии или ресурсовресурс / не перехватывается как E3xx

Частая ошибка

Коды являются стабильными контрактами только там, где их закрепляет единая спецификация среды выполнения.

Куда дальше

Держите эту страницу рядом при написании кода. За последовательным объяснением вернитесь к карте синтаксиса или соответствующей главе.

Синтаксис одним взглядом · Путь обучения