第4部分 (第1/5頁)
套牢提示您:看後求收藏(筆趣閣小說www.biqugexsw.tw),接著再看更方便。
籩謝指垂�吹氖焙潁��壞貌恢蔥幸唬縞opy;清除程式碼。為了把異常處理控制傳遞給更高層的處理段,可以再一次對截獲物件實?copy;throw操作。注要再次實throw異常的方法,throw語句執行完後,會終止執行。try{f。open();}catch(Exceptione){f。close();throwe;}定局語句finally(定局?copy;語句是用於保證無論在異常是否發生的情況下,某?copy;程式碼被執行。下例說明finally語句的用法:try{//做某?copy;動作;}finally{//此後清除;}和以下程式碼類似try{//做某?copy;動作}catch(Objecte){//此後清除;throwe;}}//此後清除;即使try塊中包含return,break,continue,throw語句,finally語句也會被執行。例如:下面的程式碼”finally”總是被輸出,而”aftertry”僅在a!=10時被輸出。try{if(a==10){return;}}finally{print(”finallyn”);}print(”aftertryn”);執行時刻異常本節列出的清單是Java直譯器引發的各種異常。當執行時刻發現各種錯誤,由直譯器引發異常。ArithmeticException如果程式試圖除0,或用0取模,會產生ArithmeticException(算術異常?copy;,其它算術操作不會產生異常。有關Java如何處理其它算術錯誤的資訊,見”整數運算子”和”浮點運算子”兩節。例如:下面的程式碼將會引發ArithmeticException異常:classArith{publicstaticvoidmain(Stringargs''){intj=0;j=j/j;}}NullPointerException當程式試圖訪問一個空物件中的變數或方法,或一個空陣列中的元素時則引發NullPointerException(空指標異常?copy;。例如,訪問長度為0的陣列a'0'。有以下類宣告,執行時會引發NullPointerException異常:classNull{publicstaticvoidmain(Stringargs''){Stringo=null;inta''=null;o。length();a'0'=0;}}有趣的是,如果我們引發一個空物件,也會產一NullPointerException異常。InpatibleClassChangeException當一個類的定義被改變,而引用該類的其它類沒有被重新編譯時,會產生這一異常。有四種類更改會導致執行時刻引發InpatibleClassChangException異常。*一個類中的變數宣告由static變成非static,而其它訪問該類這一變數的類沒有被重新編譯。*一個類中的變數宣告由非static變成static,而其它訪問該類這一變數的類沒有被重新編譯。*類中宣告的某個域被刪除,而其它訪問該域的類沒有被重新編譯。*類中宣告的某個方法被刪除,而其它訪問該方法的類沒有被重新編譯。
ClassCastException如果試圖把物件o強制成ClassC,而o既不是ClassC的例項,也不是ClassC子類的例項,這時便會產生ClassCastException。classClassCast{publicstaticvoidmain(Stringargs''){Objecto=newObject();Strings=(string)o;s。length();}}}NagativeArraySizeException如果一個陣列的長度是負數,則會引發NagativeArraySizeException(陣列負下標?copy;異常。例如下面類定義的程式碼在執行時引發這一異常:classNegArray{publicstaticvoidmain(Stringargs''){inta''=newint'…1';a'0'=0;}}
OutOfMemoryException當系統無法再向應用程式提?copy;記憶體時,會引發OutOfMemoryException(記憶體溢位?copy;異常。這種異常只能出現在建立新物件的時候,即new被呼叫的
《java語言入門必背單詞》 第4部分(第1/5頁),本章未完,點選下一頁繼續閱讀。