亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2020年03月16日 12:16:55   作者:譚寶貴  
這篇文章主要介紹了Java異常處理機制try catch流程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

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

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

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

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

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

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

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

3.執(zhí)行流程

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

如果try語句塊中發(fā)生了異常,那么程序就會把對應(yīng)的異常對象拋出,然后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)容。

舉個栗子:

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é)果分析:

當(dāng)有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 = 123
i 等于1
正確
a = 123
i 等于2
錯誤
a = 0

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java Swing JPanel面板的使用方法

    Java Swing JPanel面板的使用方法

    這篇文章主要介紹了Java Swing JPanel面板的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • 淺析Java中如何實現(xiàn)線程之間通信

    淺析Java中如何實現(xiàn)線程之間通信

    本篇文章主要介紹了淺析Java中如何實現(xiàn)線程之間通信。針對 Java 的線程間通信進行了大致的講解,有興趣的可以了解一下
    2017-04-04
  • Java web自定義filter代碼實例

    Java web自定義filter代碼實例

    這篇文章主要介紹了Java web自定義filter代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • 使用gRPC微服務(wù)的內(nèi)部通信優(yōu)化

    使用gRPC微服務(wù)的內(nèi)部通信優(yōu)化

    這篇文章主要為大家介紹了微服務(wù)優(yōu)化之使用gRPC做微服務(wù)的內(nèi)部通信,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • SpringBoot中@Autowired生效方式詳解

    SpringBoot中@Autowired生效方式詳解

    @Autowired注解可以用在類屬性,構(gòu)造函數(shù),setter方法和函數(shù)參數(shù)上,該注解可以準確地控制bean在何處如何自動裝配的過程。在默認情況下,該注解是類型驅(qū)動的注入
    2022-06-06
  • java面向?qū)ο蠡A(chǔ)_final詳細介紹

    java面向?qū)ο蠡A(chǔ)_final詳細介紹

    本文將詳細介紹java final 對象的使用,需要了解更多的朋友可以參考下
    2012-11-11
  • Java連接數(shù)據(jù)庫實現(xiàn)方式

    Java連接數(shù)據(jù)庫實現(xiàn)方式

    文章講述了Java連接MySQL數(shù)據(jù)庫的詳細步驟,包括下載和導(dǎo)入JDBC驅(qū)動、創(chuàng)建數(shù)據(jù)庫和表、以及編寫連接和讀取數(shù)據(jù)的代碼
    2024-11-11
  • Spring?MVC?URL地址映射的示例代碼

    Spring?MVC?URL地址映射的示例代碼

    @RequestMapping是一個用來處理請求地址映射的注解,可用于類或方法上。用于類上,表示類中的所有響應(yīng)請求的方法都是以該地址作為父路徑。,這篇文章主要介紹了Spring?MVC?URL地址映射,需要的朋友可以參考下
    2022-07-07
  • ssm框架+PageHelper插件實現(xiàn)分頁查詢功能

    ssm框架+PageHelper插件實現(xiàn)分頁查詢功能

    今天小編教大家如何通過ssm框架+PageHelper插件實現(xiàn)分頁查詢功能,首先大家需要新建一個maven工程引入jar包,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2021-06-06
  • 詳解JAVA Timer和TimerTask

    詳解JAVA Timer和TimerTask

    這篇文章主要介紹了JAVA Timer和TimerTask的相關(guān)資料,文中講解非常細致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07

最新評論