我正在设计一个解决方案,其中包括一个 C++ 库和几个通过 JNI 使用该库的 Java 应用程序。
C++ 库大量分配本机内存。当此分配失败时,可以从 C++ 代码中检测到。分配失败应该通过抛出可抛出的东西报告给 Java 代码。
2个选项被考虑:
- 从我的 C++ 代码中抛出 java.lang.OutOfMemoryError
- 添加 mylibrary.MyLibraryOutOfMemoryError(扩展 java.lang.RuntimeException 或 java.lang.Error),并抛出它
什么是正确的选择,为什么?