Как рассуждать
- 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 |
Частая ошибка
Коды являются стабильными контрактами только там, где их закрепляет единая спецификация среды выполнения.
Куда дальше
Держите эту страницу рядом при написании кода. За последовательным объяснением вернитесь к карте синтаксиса или соответствующей главе.