程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JNI和Java違例

JNI和Java違例

編輯:關於JAVA

利用JNI,可丟棄、捕捉、打印以及重新丟棄Java異常,就象在一個Java程序裡那樣。但對程序員來說,需自行調用專用的JNI函數,以便對異常進行處理。下面列出用於異常處理的一些JNI函數:
■Throw():丟棄一個現有的異常對象;在固有方法中用於重新丟棄一個異常。
■ThrowNew():生成一個新的異常對象,並將其丟棄。
■ExceptionOccurred():判斷一個異常是否已被丟棄,但尚未清除。
■ExceptionDescribe():打印一個異常和堆棧跟蹤信息。
■ExceptionClear():清除一個待決的異常。
■FatalError():造成一個嚴重錯誤,不返回。
在所有這些函數中,最不能忽視的就是ExceptionOccurred()和ExceptionClear()。大多數JNI函數都能產生異常,而且沒有象在Java的try塊內的那種語言特性可供利用。所以在每一次JNI函數調用之後,都必須調用ExceptionOccurred(),了解異常是否已被丟棄。若偵測到一個異常,可選擇對其加以控制(可能時還要重新丟棄它)。然而,必須確保異常最終被清除。這可以在自己的函數中用ExceptionClear()來實現;若異常被重新丟棄,也可能在其他某些函數中進行。但無論如何,這一工作是必不可少的。
我們必須保證異常被徹底清除。否則,假若在一個異常待決的情況下調用一個JNI函數,獲得的結果往往是無法預知的。也有少數幾個JNI函數可在異常時安全調用;當然,它們都是專門的異常控制函數。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved