日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java中的异常种类和区别以及处理机制和区别

發(fā)布時間:2025/3/19 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java中的异常种类和区别以及处理机制和区别 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

java中的異常種類和區(qū)別以及處理機制和區(qū)別

按照異常需要處理的時機分為編譯時異常(也叫強制性異常)也叫 CheckedException 和運行時異常(也叫非強制性異常)也叫 RuntimeException。只有 java 語言提供了 Checked 異常,Java 認為 Checked異常都是可以被處理的異常,所以 Java 程序必須顯式處理 Checked 異常。如果程序沒有處理 Checked 異常,該程序在編譯時就會發(fā)生錯誤無法編譯。這體現(xiàn)了 Java 的設(shè)計哲學:沒有完善錯誤處理的代碼根本沒有機會被執(zhí)行。

對 Checked 異常處理方法有兩種:

1.當前方法知道如何處理該異常,則用 try...catch 塊來處理該異常。2. 當前方法不知道如何處理,則在定義該方法是聲明拋出該異常。

運行時異常只有當代碼在運行時才發(fā)行的異常,編譯時不需要 try catch。Runtime 如除數(shù)是 0 和數(shù)組下標越
界等,其產(chǎn)生頻繁,處理麻煩,若顯示申明或者捕獲將會對程序的可讀性和運行效率影響很大。所以由系統(tǒng)自動檢測并將它們交給缺省的異常處理程序。當然如果你有處理要求也可以顯示捕獲它們。

error 和 exception 的區(qū)別?

1. Error 類和 Exception 類的父類都是 Throwable 類,他們的區(qū)別如下。2. Error 類一般是指與虛擬機相關(guān)的問題,如系統(tǒng)崩潰,虛擬機錯誤,內(nèi)存空間不足,方法調(diào)用棧溢出等。對于這類錯誤的導(dǎo)致的應(yīng)用程序中斷,僅靠程序本身無法恢復(fù)和和預(yù)防,遇到這樣的錯誤,建議讓程序終止。3. Exception 類表示程序可以處理的異常,可以捕獲且可能恢復(fù)。遇到這類異常,應(yīng)該盡可能處理異常,使程序恢復(fù)運行,而不應(yīng)該隨意終止異常。4. Exception 類又分為運行時異常(Runtime Exception)和受檢查的異常(Checked Exception ),運行時異常;ArithmaticException,IllegalArgumentException,編譯能通過,但是一運行就終止了,程序不會處理運行時異常,出現(xiàn)這類異常,程序會終止。而受檢查的異常,要么用 try。。。catch 捕獲,要么用 throws 字句聲明拋出,交給它的父類處理,否則編譯不會通過。

Java中的兩種異常類型是什么?他們有什么區(qū)別?

Java中有兩種異常:受檢查的(checked)異常和不受檢查的(unchecked)異常。不受檢查的異常不需要在方法或者是構(gòu)造函數(shù)上聲明,就算方法或者是構(gòu)造函數(shù)的執(zhí)行可能會拋出這樣的異常,并且不受檢查的異常可以傳播到方法或者是構(gòu)造函數(shù)的外面。相反,受檢查的異常必須要用throws語句在方法或者是構(gòu)造函數(shù)上聲明。

java 異常處理機制

Java 對異常進行了分類,不同類型的異常分別用不同的 Java 類表示,所有異常的根類為 java.lang.Throwable,Throwable 下面又派生了兩個子類:Error 和 Exception,Error 表示應(yīng)用程序本身無法克服和恢復(fù)的一種嚴重問題。Exception 表示程序還能夠克服和恢復(fù)的問題,其中又分為系統(tǒng)異常和普通異常,系統(tǒng)異常是軟件本身缺陷所導(dǎo)致的問題,也就是軟件開發(fā)人員考慮不周所導(dǎo)致的問題,軟件使用者無法克服和恢復(fù)這種問題,但在這種問題下還可以讓軟件系統(tǒng)繼續(xù)運行或者讓軟件死掉,例如,數(shù)組腳本越界(ArrayIndexOutOfBoundsException),空指針異常(NullPointerException)、類轉(zhuǎn)換異常(ClassCastException);普通異常是運行環(huán)境的變化或異常所導(dǎo)致的問題,是用戶能夠克服的問題,例如,網(wǎng)絡(luò)斷線,硬盤空間不夠,發(fā)生這樣的異常后,程序不應(yīng)該死掉。

java 為系統(tǒng)異常和普通異常提供了不同的解決方案,編譯器強制普通異常必須 try…catch 處理或用 throws 聲明繼續(xù)拋給上層調(diào)用方法處理,所以普通異常也稱為 checked 異常,而系統(tǒng)異常可以處理也可以不處理,所以,編譯器不強制用 try…catch 處理或用 throws 聲明,所以系統(tǒng)異常也稱為 unchecked 異常。

常見的運行時異常( RuntimeException)

1)java.lang.NullPointerException 空指針異常;出現(xiàn)原因:調(diào)用了未經(jīng)初始化的對象或者是不存在的對象。 2)java.lang.ClassNotFoundException 指定的類找不到;出現(xiàn)原因:類的名稱和路徑加載錯誤;通常都是程序試圖通過字符串來加載某個類時可能引發(fā)異常。 3)java.lang.NumberFormatException 字符串轉(zhuǎn)換為數(shù)字異常;出現(xiàn)原因:字符型數(shù)據(jù)中包含非數(shù)字型字符。 4)java.lang.IndexOutOfBoundsException 數(shù)組角標越界異常,常見于操作數(shù)組對象時發(fā)生。 5)java.lang.IllegalArgumentException 方法傳遞參數(shù)錯誤。 6)java.lang.ClassCastException 數(shù)據(jù)類型轉(zhuǎn)換異常。 7)java.lang.NoClassDefFoundException 未找到類定義錯誤。 8)SQLException SQL 異常,常見于操作數(shù)據(jù)庫時的 SQL 語句錯誤。 9)java.lang.InstantiationException 實例化異常。 10)java.lang.NoSuchMethodException 方法不存在異常。

throw 和 throws 的區(qū)別

throw:
1)throw 語句用在方法體內(nèi),表示拋出異常,由方法體內(nèi)的語句處理。
2)throw 是具體向外拋出異常的動作,所以它拋出的是一個異常實例,執(zhí)行 throw 一定是拋出了某種異常。
throws:
1)throws 語句是用在方法聲明后面,表示如果拋出異常,由該方法的調(diào)用者來進行異常的處理。
2)throws 主要是聲明這個方法會拋出某種類型的異常,讓它的使用者要知道需要捕獲的異常的類型。
3)throws 表示出現(xiàn)異常的一種可能性,并不一定會發(fā)生這種異常。

總結(jié)

以上是生活随笔為你收集整理的java中的异常种类和区别以及处理机制和区别的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。