2016-06-28 4 views
2

SWIG를 사용하여 % 예외 처리기를 작성하고 있습니다. 두 개의 다른 핸들러를 사용하고 싶습니다. 특별한 경우에는 1 개, 다른 모든 경우에는 다른 핸들러를 사용하고 싶습니다. 이것을 할 수있는 방법이 있습니까? 즉, 지금,이 있습니다 SWIG : 선택적 예외 처리기를 다시 사용 하시겠습니까?

%exception { 
    //basic error handling 
} 

%exception foo1 { 
    //advanced error handling 
} 
%exception foo2 { 
    //advanced error handling 
} 
%exception foo3 { 
    //advanced error handling 
} 

하지만 3 foo는 핸들러가 동일하기 때문에, 그들이 일하기에 좋은 것 (그들은 같은 클래스의 세 멤버가 도움이된다면,있어)

같은 코드. 이 부분은 SWIG documentation처럼 보이지 않습니다. 비싸고 스레드가 안전하지 않을 수 있기 때문에 고급 핸들러를 모든 것에 사용할 수 있다고 생각하지 않습니다. 내가 놓친 게 있니?

답변

2

글쎄, 당신은 항상 꿀꺽 꿀꺽 매크로를 사용할 수 있습니다

%define %custom_exception 
{ 
    //advanced error handling 
} 
%enddef 

을 한 후 사용

%exception foo1 %custom_exception 
%exception foo2 %custom_exception 
%exception foo3 %custom_exception 
관련 문제