簡體   English   中英

SWIG:從Python向C ++拋出異常

[英]SWIG: Throwing exceptions from Python to C++

我們有一個用C ++定義的接口(抽象類,所有函數都是純虛擬的),它將在Python中進行擴展。 為了克服跨語言多態性問題,我們計划使用SWIG Director 我已經在這里這里這里甚至在SO上閱讀了如何捕獲我們的Python代碼中C ++代碼引發的異常的信息。

這是相當簡單的,我不期望處理我們庫的異常問題。 我想知道並且似乎無法在文檔中找到的是如何使擴展的C ++接口的Python實現以使它們對C ++代碼可見的方式拋出這些C ++異常。

我們可以在* .i文件中制作一些小的函數,以便每個函數都拋出我們的異常:

void throw_myException(){ throw MyException; }

但我想知道它將如何與Python代碼進行交互。

任何人都有從Python代碼引發C ++異常的經驗嗎?

(C)Python是用C編寫的。“通過”解釋器拋出異常似乎很糟糕。

我的感覺是,從可以通過工廠創建異常的API返回某種令牌可能是最安全的。

盡管我們使用C#而不是Python來生成“錯誤代碼”數據,然后將其轉換為C ++層,然后發送給異常工廠,但這基本上就是我們在這里所做的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM