LINUX.ORG.RU

emacs+elisp+обработка ошибок


0

0

Доброго времени суток.

Есть функция, windmove-up, которая перемещает фокус в самый верхний буфер (верхний не в списке, а по положению на экране), так вот, если фокус находиться уже в верхнем буфере или буфер всего один на экране, то оно возбуждает ошибку (скорее исключение с помощью (error ...)) 'windmove-do-window-select: No window up from selected window' и я так понимаю делает выход из той функции, из которой она вызвана. В этой функции есть еще одно действие, которое надо выполнить. Каким образом отловить это исключение?

Моя функция:

(defun my-function () (windmove-up) (delete-other-windows))

anonymous

Ответ на: комментарий от anonymous

(defun my-function ()
  (condition-case nil
      (windmove-up)
      (error nil))
  (delete-other-windows))

Sphinx ★★☆☆
()
Ответ на: комментарий от anonymous

И ещё у интерактивных функций эта ошибка просто появится в `*Messages*` — может, ты её будешь всё-таки вручную пускать? Тогда `(interactive)` не забудь.

Sphinx ★★☆☆
()
Ответ на: комментарий от Sphinx

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

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.