У нас есть интерфейс, который мы определили в C ++ (абстрактный класс, все функции чисто виртуальные), который будет расширен в Python. Чтобы преодолеть проблемы межъязыкового полиморфизма, мы планируем использовать SWIG Directors . Я читал, как отлавливать исключения, генерируемые из кода C ++, в нашем коде Python здесь , здесь , здесь и даже на SO .
Это довольно просто, и я не ожидаю проблем с обработкой собственных исключений нашей библиотеки. То, что я хотел бы знать и не могу найти в документации, - как заставить нашу реализацию Python расширенного интерфейса C ++ генерировать эти исключения C ++ таким образом, чтобы они были видимы для кода C ++.
Мы могли бы создавать небольшие функции в файлах * .i, чтобы каждая функция вызывала наши исключения:
void throw_myException(){ throw MyException; }
но мне интересно, как он будет взаимодействовать с кодом Python.
Кто-нибудь имеет опыт создания исключений C ++ из кода Python?