use*_*701 3 java java-native-interface out-of-memory
我正在设计一个解决方案,其中包括一个C++库和几个通过JNI使用该库的Java应用程序.
C++库大量分配本机内存.当分配失败时,可以从C++代码中检测到.分配失败应报告给Java代码,抛出一些东西.
考虑了两个选项:
什么是正确的选择,为什么?
OutOfMemoryError 具有特定含义:
当Java虚拟机因内存不足而无法分配对象时抛出,并且垃圾收集器不再提供更多内存
由于本机堆分配失败,因此您的代码抛出此错误是不合适的.尽管如此ByteBuffer.allocateDirect().
我建议你创建自己的例外,扩展Error.它应该不会是一个检查的异常,因为很少有/没有一个运行的程序可以做些什么来避免错误.
| 归档时间: |
|
| 查看次数: |
1943 次 |
| 最近记录: |