中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java異常有哪些及怎么處理

發布時間:2022-02-21 16:27:31 來源:億速云 閱讀:137 作者:iii 欄目:開發技術

這篇“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異常有哪些及怎么處理”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

乃东县| 康保县| 南岸区| 邮箱| 朝阳市| 长子县| 剑川县| 怀仁县| 浦北县| 东乌珠穆沁旗| 社会| 梧州市| 嘉荫县| 蒙自县| 老河口市| 温州市| 隆化县| 金乡县| 红河县| 扬州市| 佛坪县| 娱乐| 诸暨市| 宁都县| 台江县| 巴彦淖尔市| 黔西| 江西省| 南漳县| 上林县| 株洲县| 汉川市| 遂昌县| 棋牌| 宝鸡市| 隆子县| 禹州市| 长丰县| 区。| 金门县| 元江|