由于C++层面没有try catch机制,所以得另辟蹊径
ExceptionCheck
每次JNI调用之后都要调用(*env)->ExceptionCheck(env)检测是否发生了异常,若发现异常创建Throwable,将错误信息封装进Throwable,向上抛向Java层面,在Java层面try catch。
信号量捕获
看这篇文章有详细介绍,在网上引用量挺高的JNI Crash:异常定位与捕获处理
由于C++层面没有try catch机制,所以得另辟蹊径
每次JNI调用之后都要调用(*env)->ExceptionCheck(env)检测是否发生了异常,若发现异常创建Throwable,将错误信息封装进Throwable,向上抛向Java层面,在Java层面try catch。
看这篇文章有详细介绍,在网上引用量挺高的JNI Crash:异常定位与捕获处理