JNA 调用C++的DLL时,如果DLL中抛出异常,则整个JVM进程会退出?

有什么办法可以包裹住异常而不让JVM退出?
这是Java调用代码:
image.png
可以看到,26行报错过后直接就停止了运行,JVM被退出,类似exit(3)。
这是C++报错的代码:

DLLIMPORT double fuc(double x, double y)  
{
if(0==0)
{
     throw y;                                 
}
     return x/y;                                   
}

如果调用DLL不是在主线程,仍然JVM会被退出,这是我最大的疑惑点:
image.png

阅读 3.5k
2 个回答

应该只能在 C++ 里面 catch 住。抛到 java 里好像就没办法了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题