Когда это нужно
Сначала определите этап диагностики. Ошибка чтения требует исправить написание, ошибка нормализации требует поправить форму конструкции, а ошибка выполнения описывает допустимую форму, не сработавшую при запуске.
Проверьте запуском
(guard (e (else (error-object-message e))) (car 1))Наблюдаемый результат
"car: expected a pair, got 1"Разбор примера
car получает 1 вместо пары и выдаёт перехватываемую ошибку выполнения. guard принимает объект ошибки и возвращает его стабильное сообщение. Программа завершается строкой, а не трассировкой стека среды.
Как рассуждать
- Ошибки выполнения используют коды E3xx, стабильные шаблоны, детерминированную печать проблемных значений и диапазон охватывающего вызова.
- Предупреждения являются упорядоченными наблюдениями. Настоящий вызов
%выдаёт W330 перед передачей работыmodulo. Настоящие вызовыlist-firstиlist-restвыдают W331 передcarиcdr. Каждое место исходника предупреждает один раз, перекрывающее связывание не предупреждает, а последующая ошибка не удаляет уже записанное предупреждение. - Первая неперехваченная ошибка прерывает выполнение без трассировки стека среды, а исчерпание ресурсов остаётся вне перехватываемых E3xx.
Быстрый выбор
| Класс | Когда возникает | Первое действие |
|---|---|---|
| E100 · E140 · E150 чтение | исходник нельзя превратить в данные | исправить выделенный токен или разделитель |
| E110 · E120 · E130 нормализация | статическая форма неверна | проверить написание, положение и арность формы |
| E3xx выполнение | вычисление дошло до недопустимой операции | проверить названную процедуру и проблемные значения |
| W3xx предупреждение | используется уходящее написание, выполнение продолжается | перейти к указанной замене |
| ресурсный исход | достигнут потолок профиля | уменьшить работу или выбрать нужный профиль |
Частая ошибка
Предупреждение не является stdout и не должно переставляться или сливаться с диагностикой.
В новом коде используйте modulo, first и rest. Устаревающие написания
остаются исполнимыми только для совместимости.
Текущие границы
- Паника платформы, пустой сбой и недетерминированный текст среды не являются допустимой гостевой диагностикой.
Куда дальше
Точный поиск кодов находится в каталоге диагностик, а проверку до решения показывает руководство по ошибкам.