Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android NDK學習筆記11-JNI異常處理

Android NDK學習筆記11-JNI異常處理

編輯:關於Android編程

捕獲異常

JNIEnv接口提供了一組與異常相關的函數集,在運行過程中可以使用java類查看這些函數。

public class JavaClass{
// 拋出方法
private void throwingMethod() throws NullPointerException{
throw new NullPointerException("Null Pointer");
}
}

調用throwingMethod方法時,accessMethod原生方法需要顯示地做異常處理。JNI提供了ExceptionOccurred函數查詢虛擬機中是否有掛起的現象。例如,原生代碼中的異常處理:

jthrowable ex;
……
(*env)->CallVoidMethod(env,instance,throwingMethodId);
ex = (*env)->ExceptionOccurred(env);
if(0 != ex){
(*env)->ExceptionClear(env);
/*Exception handler*/
}

拋出異常

JNI也允許原生代碼拋出異常。因為異常是java類,應該先用FindClass函數找到異常類。用ThrowNew函數可以初始化且拋出新的異常,例如:

jclass clazz;
……
clazz = (*env)->FindClass(env,"java/lang/NullPointerException");
if(0 !=clazz){
(*env)->ThrowNew(env,clazz,"Exception message");
}
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved