#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).