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

回到顶部