Обрабатывать исключение в Scheme script-fu
Я написал скрипт для Gimp (script-fu!) В Scheme.
В какой-то момент сценарий требует действительно потрясающего инструмента "ресинтезатор".
(python-fu-heal-selection 1 image drawable 10 0 0)
Теперь проблема в том, что пользователь должен был установить Resynthesizer раньше. Если нет, он увидит неприятное сообщение об ошибке вроде
Ошибка: eval: несвязанная переменная: python-fu-heal-selection
Что я хотел бы сделать, так это обработать это исключение, чтобы пользователь мог знать, что не так.
Что-то вроде:
try
(python-fu-heal-selection 1 image drawable 10 0 0)
catch/except/handle exception eval, or something
(gimp-message "You have to install Resynthesizer, see the tutorial")
Но в схеме. Я провел свое исследование, но... обработка исключений в Scheme / script-fu не очень документирована...
Спасибо!
1 ответ
GIMP использует TinyScheme и в соответствии с документацией catch
Синтаксис будет перехватывать все ошибки. То, что вы ищете, выглядит примерно так:
(catch (gimp-message "You have to install Resynthesizer, see the tutorial")
(python-fu-heal-selection 1 image drawable 10 0 0))
Это предполагает, что отсутствие Resynthesizer является единственной причиной любых ошибок.