jni异常,c++抛出异常,java捕获
来源:互联网 发布:大数据概念板块 编辑:程序博客网 时间:2024/05/05 19:18
public class MainActivity extends AppCompatActivity { // Used to load the 'native-lib' library on application startup. static { System.loadLibrary("native-lib"); } public native void doit() throws IllegalArgumentException; public void callback() throws NullPointerException { throw new NullPointerException("**********Throw**********"); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // Example of a call to a native method //TextView tv = (TextView) findViewById(R.id.sample_text); //tv.setText(stringFromJNI()); try { doit(); }catch (Exception e){ System.out.println("In Java:\n\t" + e); } }}
在native-lib.cpp中,原本没有异常的情况下,不需要清除异常等行为
#include <jni.h>#include <string>#include <android/log.h>extern "C"voidJava_com_example_administrator_mytestjniexception_MainActivity_doit(JNIEnv* env,jobject obj) { __android_log_print(ANDROID_LOG_INFO, "JNITag","start jni func doti"); jclass newExcCls; newExcCls = env->FindClass("java/lang/IllegalArgumentException"); if (newExcCls == NULL) { /* Unable to find the exception class, give up. */ __android_log_print(ANDROID_LOG_INFO, "JNITag","jni return"); return ; } env->ThrowNew(newExcCls, "***** thrown new exception from C code *****"); return ;}
如果原本存在异常,需要先清除这个异常,再抛出新的异常
if (exc) { //对发生的异常进行描述 env->ExceptionDescribe(); //清除掉发生的异常 env->ExceptionClear();}
0 0
- jni异常,c++抛出异常,java捕获
- JAVA捕获异常与抛出异常
- Java中的异常处理:何时抛出异常,何时捕获异常?
- Jni C/C++运行时遇到异常怎么办?捕获与抛出
- 抛出异常和捕获异常
- java 捕获线程里抛出的异常
- java异常的捕获与抛出原则
- Java异常的捕获和抛出
- java异常的捕获与抛出原则
- Java- 异常的抛出与捕获
- java异常的捕获与抛出原则
- java异常的捕获与抛出原则
- java异常处理机制示例(java抛出异常、捕获、断言)
- java异常处理机制示例(java抛出异常、捕获、断言)
- JNI中抛出异常
- JNI中抛出异常
- java基础(十)捕获异常还是抛出异常
- 页面捕获抛出的异常
- R语言中的机器学习
- 自定制ProgressView
- 如何把字符串转换成整数
- volatile关键字详解
- MyBatis拦截器分页原理及PageHelper分页插件教学
- jni异常,c++抛出异常,java捕获
- numpy 中的ndarray数组返回符合特定条件的索引方法
- 【转】UsbAccessory和UsbDevice的区别
- unity MeshCollider组件
- 扎心了!论虐狗我只服UI设计师!
- 基础知识之strcpy、strcmp、strcat
- jquery添加新元素
- java系统高并发解决方案
- node