2010-05-21 2 views
0

우리는 C++ (추상 클래스, 모든 순수한 가상 함수)에서 정의한 인터페이스를 파이썬으로 확장했습니다. SWIG directors을 사용하여 교차 언어 다형성 문제를 극복하기 위해 나는 파이썬 코드 here, here, here 및 심지어 SO에있는 C++ 코드에서 던진 예외를 잡는 방법을 읽었습니다.SWIG : 파이썬에서 C++로 예외를 던지기

상당히 간단하며 도서관의 자체 예외 처리 문제는 기대하지 않습니다. 내가 알고 싶은 점은 문서에서 찾을 수없는 것입니다. 확장 된 C++ 인터페이스를 구현 한 Python 구현 방법을 C++ 코드에서 볼 수 있도록 C++ 예외를 throw하는 방법입니다.

void throw_myException(){ throw MyException; } 

을하지만 난 파이썬 코드와 상호 작용하는 방법 궁금 해요 :

우리는 각각의 기능은 우리의 예외를 throw하도록 * .I 파일 내에서 작은 기능을 만들 수 있습니다.

누구나 파이썬 코드에서 C++ 예외를 던진 경험이 있습니까?

답변

2

(C) Python이 C로 작성되었습니다. 통역사를 통해 예외를 던지는 것이 좋지 않은 것처럼 보입니다.

제 생각에 공장을 통해 예외를 만들 수있는 API로부터 일종의 토큰을 반환하는 것이 가장 안전하다고 생각합니다.

기본적으로 우리가하는 일은 여기에 있습니다. 파이썬 대신 C#을 사용하여 "오류 코드"데이터를 생성 한 다음 C++ 계층으로 변환 한 다음 예외 팩터로 보냅니다.

+0

우리는 여기서 다양한 것을 시도했지만 마침내이 방법을 사용하여 해결했습니다. 그것은 누구나 제안한 가장 명확하고 효율적인 방법입니다. 감사합니다. – wheaties

관련 문제