一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java異常處理學習心得

Java異常處理學習心得

2021-03-29 10:14adamjwh Java教程

本篇文章給大家詳細講述了學習Java異常處理學習的心得以及原理介紹,對此有興趣的朋友參考下吧。

程序中總是存在著各種問題,為了使在程序執行過程中能正常運行,使用java提供的異常處理機制捕獲可能發生的異常,對異常進行處理并使程序能正常運行。這就是java的異常處理。

一、可捕獲的異常

java中可以捕獲的異常分為可控式和運行時異常。

1. 可控式異常

在java中把那些可以預知的錯誤,在程序編譯時就能對程序中可能存在的錯誤進行處理,并給出具體的錯誤信息,這些錯誤稱為可控式異常。常用的可控式異常如下:

異常說明 ioexception 當發生某種i/o異常時,拋出此異常 sqlexception 提供關于數據庫訪問錯誤或其他錯誤信息的異常 classnotfoundexception 類沒有找到異常 nosuchfieldexception 類不包含指定名稱的字段時產生的信號nosuchmethodexception 無法找到某一特定方法時,拋出該異常

2. 運行時異常

在java中不能被編譯器檢測到的錯誤稱為運行時異常。常用的運行時異常如下:

 異常  說明  indexoutofboundsexception  指示某集合或數組的索引值超出范圍時拋出該異常  nullpointerexception  當應用程序試圖在需要對象的地方使用null時,拋出該異常  arithmeticexception  當出現異常的運算條件時,拋出此異常  illegalargumentexception  拋出異常的表明向方法傳遞了一個不合法或不正確的的參數  classcastexception  當試圖將對象強制轉換為不是實例的子類時,拋出該異常

二、處理異常

在java中當程序出現異常時,可以使用try···catch、try···catch···finally或try···finally進行處理。

1. 使用try···catch處理異常

try后是正常執行的語句,而catch后是對異常處理的語句,catch的括號中是程序需要處理的異常類型。語法格式如下:

?
1
2
3
4
5
try {
  正常執行的語句
} catch(exception e) {
  對異常進行處理的語句
}

這里舉一個算數異常的例子,如下。

?
1
2
3
4
5
6
7
8
9
10
public class exceptiontest {
  public static void main(string[] args) {
    int result = 1 / 0;
    try {
      system.out.println(result);
    } catch (exception e) {
      system.out.println("拋出異常:" + e.getmessage());
    }
  }
}

這里1/0是個異常的算法,因為除數不能為0。運行結果如下:

Java異常處理學習心得

因為有異常,所以不執行try后的語句,從而執行catch后的語句。其中“e.getmessage()”是獲取異常信息的方法,用于獲取詳細消息字符串;此外還有printstacktrace()方法,用于將其棧蹤跡輸出至標準錯誤流;tostring()方法用于獲得簡短描述。

2. 使用try···catch···finally處理異常

這里try、catch后的語句與前面的相同,而finally后的語句無論是否發生異常都要執行,因此finally語句塊通常用于執行垃圾回收。語法格式如下:

?
1
2
3
4
5
6
7
try {
  正常執行的語句
} catch(exception e) {
  對異常進行處理的語句
} finally {
  一定會被處理的語句
}

3. 使用try···finally處理異常

在程序發生異常時,就可以在finally語句塊中對其進行相應的處理,另外當程序沒有發生異常時,執行完try和finally之間的語句后,也將執行finally語句塊中的代碼。語法格式如下:

?
1
2
3
4
5
try {
  需要執行的語句
} finally {
  一定會被處理的語句
}

三、拋出異常

對于程序中發生的異常,除了上面的try···catch語句處理之外,還可以使用throws聲明或throws語句拋出異常。

1. 使用throws聲明拋出異常

throws用于方法聲明,在聲明方法時使用throws聲明拋出異常,然后在調用該方法中對異常進行處理。

如需聲明多個異常,各異常間要用逗號分隔,語法格式如下:

?
1
2
3
數據類型 方法名(形參列表) throws 異常類1, 異常類2, ……, 異常類n {
  方法體;
}

比如用throws拋出exception異常。

?
1
2
3
public void showinfo() throws exception {    // 拋出exception
  fileinputstream in = new fileinputstream("c://record.txt");  // 創建io對象
}

2. 使用throw語句拋出異常

如果希望程序自行拋出異常,可以使用throw語句來實現。語法格式如下: throw new exception("對異常的說明"); 

使用throw語句拋出的是異常類的實例,通常與if語句一起使用。如:

?
1
2
3
if(x < 0) {
  throw new exception("程序異常,x不能小于0。");
}

原文鏈接:https://www.cnblogs.com/adamjwh/p/8377577.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲国产成人久久综合一区77 | 希岛爱理作品在线观看 | 亚洲精品一区二区久久这里 | 日韩拍拍拍| 国产欧美日韩综合二区三区 | 国内精品91久久久久 | 国产欧美国产精品第一区 | 91免费永久国产在线观看 | 欧美区视频 | 亚洲国产天堂 | 国产 日韩 欧美视频二区 | 日韩欧美在线一区二区三区 | 精品久久免费观看 | 97操| 秘书喂奶好爽一边 | 亚洲男女天堂 | 天干夜天天夜天干天ww | 日本一区视频在线 | chinese老太granny chinese国产人妖hd | 精品区卡一卡2卡三免费 | 九九影院午夜理论片无码 | 人与善交大片免费看 | 俄罗斯15一16处交 | v视界影院成片 | 日比免费视频 | 国产高清精品自在久久 | 桥本有菜ssni-677在线观看 | 国产91素人搭讪系列天堂 | 午夜影院免费入口 | 爱情岛论坛亚洲自拍 | 粉嫩尤物在线456 | 精品日韩二区三区精品视频 | 国产午夜精品福利 | 激情图片 激情小说 | 欧美日韩精品一区二区三区视频在线 | 国产精品videosse | 国产1区2区三区不卡 | 青青草原国产一区二区 | 精品一区二区三区免费站 | 亚洲成人精品久久 | 校花在公车上被内射好舒 |