我對處理異常被庫下JNA拋出一個快速的問題...JNA捕獲異常
當我扔在底層的本機代碼的異常,JNA得到一個無效的內存訪問錯誤。我假設這是因爲C庫不能通過它的堆棧拋出異常(它實際上是C++/CLR但具有C導出)?那麼是否沒有真正的方法來向Java報告異常?或者「它應該工作」,我只是在做一些令人難以置信的錯誤?
DllExport void Initialize(char* dir)
{
throw gcnew System::Exception("Testing");
}
這將是很好的Java能夠檢測這些拋出的異常,我想我其實可以考慮通過內存指針到所有我的C出口和檢查,看看是否這些都是空或不是,但似乎是一個迂迴的方式。
因此,我會在C++/CLR端捕獲它,並將它作爲多個參數傳回給java? (或者在想要簡單的錯誤報告的情況下,只需要第二個參數,「char * err」就足夠了)。我想我可能必須這樣做。 – StrangeWill