您好,登錄后才能下訂單哦!
這篇“java異常有哪些及怎么處理”文章的知識點大部分人都不太理解,所以小編給大家總結了以下內容,內容詳細,步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“java異常有哪些及怎么處理”文章吧。
程序的異常指的是程序在運行時,發生了一些不被期望的事件,而這些事件阻止了程序按照預期進行正常執行,這就是異常。
舉個例子:程序需要打開一個文件并做一些處理,但是這個文件并不存在。java代碼在運行到打開這個文件這個步驟,因為沒有這個文件,也就沒有辦法打開這個文件,沒有辦法打開文件也就沒有辦法進行文件的處理。這就是一個異常(一個文件打開異常)。
因為程序在運行時總是可能會發生一些無法預料到的環境,所以產生的異常各有不同,比如說文件不存在,打開文件操作就會出現異常。也有可能是java虛擬機內存溢出,也會導致異常(通常出現這種問題都是代碼沒有優化才會出現)。也有程序員在開發的時候不遵守規范導致的異常(比如除數不能為零,當除數為零是會報除零異常,還有數組操作越界異常和空指針異常,這些都是初學者比較常見的異常)。
根據上面所舉的例子,大致可以將java的異常分成三類,分別是:
錯誤Error
這種異常是系統級別的異常,比如說Java虛擬機內存溢出。這種異常在編譯時不會出現,在運行時也不會出現,但在使用不當的情況下會出現。比如在java虛擬機最大可使用內存為16m的情況下,不停地給StringBuffer追加字符,這樣子內存很快就會被用光,這樣就會出現OutOfMemoryError
異常。
運行時異常RuntimeException
這種異常通常出現在運行時,所以被稱為運行時異常。這種異常在編譯時不會出現,一旦代碼運行,就會出現異常。比如除零操作,這樣的代碼是可以編譯通過的,但在運行的時候就會報錯。與除零異常同為運行時異常的還有:空指針異常和下表越界等等。
可查異常 CheckedException
這種異常是必須處理的異常。這種異常通常在編譯時出現報錯,比如之前提到的文件不存在異常。這種異常必須進行處理,否則編譯器不會通過編譯,而處理方式也就是接下來要介紹的try-catch
語句的使用。
在java中,有一組關鍵字被用來進行異常的捕捉,它就是try
-catch
-finally
。代碼如下所示:
try{
// 嘗試執行的可能會拋出異常的代碼
}catch(異常類型1 異常的變量名1){
// 當異常拋出時,根據異常的類型和變量名執行對應的catch語句
//catch語句用來捕獲異常。
}catch(異常類型2 異常的變量名2){
// 程序代碼
}finally{
// 不管最終如何,一定要執行的語句,一般做清理類型等收尾善后性質的工作
//finally不是必要出現的
}
此外,還有一組關鍵字被用來拋出異常,它就是throws
/throw
關鍵字:
如果一個方法沒有捕獲一個可查異常,那么該方法必須使用 throws
關鍵字來聲明。throws
關鍵字放在方法簽名的尾部。
也可以使用 throw
關鍵字拋出一個異常,無論它是新實例化的還是剛捕獲到的。
下面方法的聲明拋出一個 RemoteException
異常:
import java.io.*; public class className { public void deposit(double amount) throws RemoteException { // Method implementation throw new RemoteException(); } //Remainder of class definition }
一個方法可以聲明拋出多個異常,多個異常之間用逗號隔開。
例如,下面的方法聲明拋出 RemoteException
和 InsufficientFundsException
:
import java.io.*; public class className { public void withdraw(double amount) throws RemoteException, InsufficientFundsException { // Method implementation } //Remainder of class definition }
通常錯誤,運行時異常和可查異常都可以被捕捉,但是一般情況下只有可查異常需要捕捉(因為不捕捉的話連編譯都過不了)。
以上就是關于“java異常有哪些及怎么處理”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。