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会被退出,这是我最大的疑惑点:
回复
1个回答

test
2024-07-18
应该只能在 C++ 里面 catch 住。抛到 java 里好像就没办法了。
回复

适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容