我对处理异常被库下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