Java的異常機制分析及處理辦法
眾所周知,java中的異常(Exception)機制很重要,程序難免會出錯,異常機制可以捕獲程序中的錯誤,用來提高程序的穩定性和健壯性。
java中的異常分為Checked Exception(非Runtime Exception)和UnChecked Exception(Runtime Exception),所有的異常類都直接或間接的繼承Exception。Exception又直接繼承自Throwable類,Throwable類的直接子類還有error類,不過當出現error時,程序會直接退出執行,程序處理不了error,所以這裏重點討論Exception類。RuntimeException類繼承自Exception,運行時異常都直接或間接繼承自RuntimeException類。其他繼承Exception類的是非運行時異常,在編譯期間可發現。運行時異常是在運行時才會出現的,如算術除零,在編譯期間是可以通過的,但在運行時會拋出運行時異常,除數不能為零。
java的異常處理有兩種
1、捕獲異常
結構如下
try{//執行可能產生異常的代碼}catch(RuntimeException e){//對捕獲的異常進行處理}catch(Exception e)//可定義捕獲多個異常{//對捕獲的異常進行處理}finally{//捕獲完後要執行的代碼,可有可無,如果有的話就一定會執行,不管有沒有異常}try-catch-finally
如果異常被catch捕獲後,後面還有catch語句就不會執行了,但如果有finally的話就一定會執行finally塊裏面的語句。
2、聲明拋出異常
在調用會產生異常的方法所在的方法聲明處聲明throws Exception,此方法將不會對該類異常進行處理,而是由該方法的調用者處理。
3、人為的'拋出異常
直接在方法內拋出異常,throw exception;
對於運行時異常推薦不對其進行處理。
自定義異常是定義了一個繼承自Exception類的子類,一般不會定義繼承自RuntimeException類,在try塊中存在return語句時,如果有finally塊語句,那麼也要先執行完finally塊的語句之後再返回,但如果try塊中存在(0)語句,就不會執行finally塊的語句,因為(0)會終止當前運行的java虛擬機,程序會在虛擬機終止前結束執行。
class myException extends Exception{ public myException(String str) { super(str); }}myException
異常在文件處理,輸入輸出流的應用場合等都會用上。
常見的異常類型有:
1、PointerException:空指針異常,出現該異常的原因就是某個引用為null,但程序中又調用了該引用的某個方法。
2、sNotFoundException :找不到指定的類,可能是類未定義。
3、hmeticException:算術異常,如除數為零。
4、FileNotFoundException:在文件處理中,找不到指定的文件。
5、IOException:輸入輸出流異常
6、SQLException:sql異常,執行sql語句出現錯誤。
此外還有許多類型的異常,在以後的編程中會遇到。相信本文所述對大家的Java程序設計有一定的借鑑價值。
-
Java 正則表達式
Java是一門編程語言,那麼大家知道Java正則表達式是怎樣的呢?下面一起來看看!Java正則表達式正則表達式定義了字符串的模式。正則表達式可以用來搜索、編輯或處理文本。正則表達式並不僅限於某一種語言,但是在每種語言中有細微的差別。正則表達式實例一個字符串其...
-
java語言的接口與繼承
Java是一個面向對象的語言。對程序員來説,這意味着要注意應中的數據和操縱數據的方法,而不是嚴格地用過程來思考。下面是小編分享的java語言的接口與繼承,一起來看一下吧。大多數人認為,接口的意義在於頂替多重繼承。眾所周知Java沒有c++那樣多重繼承的機制,但是卻...
-
如何實現javascript去除字符串裏中文與空格
導語:如何實現javascript去除字符串裏中文與空格呢?下面是小編給大家提供的示例代碼實現,大家可以參考閲讀,更多詳情請關注應屆畢業生考試網。1.去掉空格:functionmoveSpace(){varstr="abcdefg";alert(ace(/[]/g,""));}moveSpace();2.去掉中文:vartitle="字符串zifuc...
-
如何在Javascript中為String對象添加trim,ltrim,rtrim方法
如何在Javascript中為String對象添加trim,ltrim,rtrim方法呢?下面是小編給大家提供的實現代碼,大家可以參考閲讀,更多詳情請關注應屆畢業生考試網。利用Javascript中每個對象(Object)的prototype屬性我們可以為Javascript中的內置對象添加我們自己的方法和屬性。j...