JNA 调用C++的DLL时,如果DLL中抛出异常,则整个JVM进程会退出?
有什么办法可以包裹住异常而不让JVM退出?
这是Java调用代码:
可以看到,26行报错过后直接就停止了运行,JVM被退出,类似exit(3)。
这是C++报错的代码:
DLLIMPORT double fuc(double x, double y) {
if(0==0)
{
throw y;
}
return x/y;
}
如果调用DLL不是在主线程,仍然JVM会被退出,这是我最大的疑惑点:
回答:
应该只能在 C++ 里面 catch 住。抛到 java 里好像就没办法了。
回答:
参考这里 https://stackoverflow.com/que...
c++的异常只能自己处理,不能传播到jvm(因为也没法处理)
以上是 JNA 调用C++的DLL时,如果DLL中抛出异常,则整个JVM进程会退出? 的全部内容, 来源链接: utcz.com/p/944760.html