国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術(shù)文章
文章詳情頁

Java異常處理機制try catch流程詳解

瀏覽:32日期:2022-09-04 14:07:14

在項目中遇到try...catch...語句,因為對Java異常處理機制的流程不是很清楚,導致對相關(guān)邏輯代碼不理解。所以現(xiàn)在來總結(jié)Java異常處理機制的處理流程:

1.異常處理的機制如下:在方法中用 try... catch... 語句捕獲并處理異常,catch 語句可以有多個,用來匹配多個不同類型的異常。對于處理不了的異常或者要轉(zhuǎn)型的異常,在方法的聲明處通過 throws 聲明異常,通過throw語句??出異常,即由上層的調(diào)用方法來處理該異常。

try { 邏輯程序塊} catch(ExceptionType1 e) { 處理代碼塊1} catch (ExceptionType2 e) { 處理代碼塊2 throw(e); // 再拋出這個'異常'}

2.Exception 是程序正常運行過程中可以預料到的意外情況,并且應該被開發(fā)者捕獲,進行相應的處理。

Exception 可以以兩種方式出現(xiàn):

一是發(fā)生在程序編譯時或運行時發(fā)生異常,是被程序拋出,用戶沒有主動拋出異常;二是用戶主動拋出異常,使用throw關(guān)鍵字主動拋出異常。該異常可以是業(yè)務邏輯的異常。

try { // 可能發(fā)生異常的語句} catch(ExceptionType e) { // 處理異常語句}

3.執(zhí)行流程

try語句塊中發(fā)生了異常

如果try語句塊中發(fā)生了異常,那么程序就會把對應的異常對象拋出,然后catch語句就會捕獲該異常并且處理。

注意:如在try語句塊的第二句語句發(fā)生異常,那么在第二句以后的語句都不會執(zhí)行了,轉(zhuǎn)到catch語句塊中開始執(zhí)行。處理完catch語句塊的內(nèi)容,就會執(zhí)行catch語句塊之后的內(nèi)容

try語句塊中沒有發(fā)生異常

如果try語句塊中沒有發(fā)生異常,那么try語句塊中的內(nèi)容會由上到下依次執(zhí)行,然后catch語句塊會全部被跳過,接下來執(zhí)行catch語句塊之后的內(nèi)容。

Java異常處理機制try catch流程詳解

舉個栗子:

public class ExceptionTest { public static void main(String[] args) { for (int i = 0; i < 3; i++) { String message = ''; int a = 0; try{if (i == 1){ throw new Exception('錯誤');}message = '正確';a= 123; }catch (Exception e){message = e.getMessage(); } System.out.println( 'i 等于' + i); System.out.println(message ); System.out.println('a = ' + a+ 'n'); } }} 

輸出結(jié)果分析:

當有i = 2時,用戶主動拋出異常,可以看到為 message= '正確';a =123;的賦值語句沒有執(zhí)行, 進入到catch語句塊中,然后再執(zhí)行catch語句塊以后的內(nèi)容message = e.getMessage(); 這里message = '錯誤',因為throw new Exception('錯誤'); 在拋出異常時賦值了message為'錯誤';

message = '錯誤'a = 0

輸出結(jié)果

i 等于0正確a = 123i 等于1正確a = 123i 等于2錯誤a = 0

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Java
相關(guān)文章:
主站蜘蛛池模板: 枣庄市| 枣庄市| 衢州市| 隆化县| 天津市| 明星| 五河县| 荣昌县| 即墨市| 云浮市| 毕节市| 保康县| 饶阳县| 太谷县| 丰都县| 攀枝花市| 贵阳市| 玛沁县| 苏尼特左旗| 盘锦市| 巨野县| 巫山县| 大化| 苍山县| 孟州市| 乌拉特中旗| 云和县| 新乡县| 高雄市| 合阳县| 台前县| 康马县| 瓮安县| 沾益县| 张北县| 钟山县| 渭南市| 刚察县| 梅河口市| 盐城市| 伊川县|