91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Java中異常處理機制try catch的流程示例分析

發布時間:2021-06-05 08:01:24 來源:億速云 閱讀:323 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關Java中異常處理機制try catch的流程示例分析的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

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

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

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

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

Exception 可以以兩種方式出現:

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

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

3.執行流程

try語句塊中發生了異常

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

注意:如在try語句塊的第二句語句發生異常,那么在第二句以后的語句都不會執行了,轉到catch語句塊中開始執行。處理完catch語句塊的內容,就會執行catch語句塊之后的內容

try語句塊中沒有發生異常

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

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");
    }
  }
} 

輸出結果分析:

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

message = "錯誤"
a = 0

輸出結果

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

感謝各位的閱讀!關于“Java中異常處理機制try catch的流程示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

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

AI

巴楚县| 灵山县| 青海省| 闸北区| 龙口市| 定远县| 灯塔市| 马尔康县| 新野县| 淮阳县| 仙游县| 固始县| 焦作市| 鄂尔多斯市| 裕民县| 赤水市| 瑞金市| 仲巴县| 大连市| 尼勒克县| 高安市| 抚宁县| 宁德市| 四川省| 永春县| 得荣县| 杭锦后旗| 西城区| 连山| 正宁县| 疏勒县| 神池县| 大埔区| 景泰县| 久治县| 永胜县| 阜南县| 廊坊市| 垫江县| 确山县| 四平市|