Обработка исключений для перечисления пакетов common lisp

#exception-handling #common-lisp

#исключение #common-lisp

Вопрос:

Итак, запускаем этот код на лиспе, чтобы получить все символы в пакете common-lisp-user:

(do-symbols (символ ‘common-lisp-user) (символ печати))

Я получаю эту ошибку:

* — ПЕЧАТЬ: Символ # u0420 не может быть представлен в кодировке набора символов: CP437

Я не очень хорошо знаком с обработкой исключений в Common Lisp. Я пробовал использовать обработчик, перезапуски и т.д., Но мне пока не удалось перехватить ошибку, а затем просто продолжить.

Любая помощь с этим была бы оценена.

К вашему сведению, это на компьютере с Windows, работающем под управлением GNU CLISP 2.49.

Ответ №1:

Как насчет (IGNORE-ERRORS (some-form)) ??

Комментарии:

1. Кажется, это работает — теперь я хотел бы немного рассказать о том, как определить, какой из символов (и заменить символы, не относящиеся к кодовой странице, их экранирующими символами). Возможно, я все еще могу что-то сделать, чтобы зафиксировать эту ошибку и выполнить поиск-замену в строке.

2. У вас есть символ, в названии которого есть amp;# 1056; (это кириллическая заглавная буква ER, а не P).