精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java筆試面試總結—try、catch、finally語句中有return各類情況

開發 后端
本篇文章主要是通過舉例的方式來闡述各種情況,我這里根據 try-catch-finally 語法塊分為兩種大情況討論:try-catch 語法塊和 try-catch-finally 語句塊,然后再在每種情況里再去具體討論。

前言

之前在刷筆試題和面試的時候經常會遇到或者被問到 try-catch-finally 語法塊的執行順序等問題,今天就抽空整理了一下這個知識點,然后記錄下來。

[[331347]]

正文

本篇文章主要是通過舉例的方式來闡述各種情況,我這里根據 try-catch-finally 語法塊分為兩種大情況討論:try-catch 語法塊和 try-catch-finally 語句塊,然后再在每種情況里再去具體討論。

一、try-catch 語句塊

我們可以看看下面程序:

  1. public static void main(String[] args) { 
  2.  
  3.     System.out.println(handleException0()); 
  4.   } 
  5.  
  6.   /** 
  7.    * try,catch都有return 
  8.    * @return 
  9.    */ 
  10.   private static String handleException0() { 
  11.     try{ 
  12.       System.out.println("try開始"); 
  13.       String s = null
  14.       int length = s.charAt(0); 
  15.       System.out.println("try結束"); 
  16.       return "try塊的返回值"; 
  17.     }catch (Exception e){ 
  18.       System.out.println("捕獲到了異常"); 
  19.       return "catch的返回值"; 
  20.     } 
  21.   } 

執行結果:

try開始 捕獲到了異常 catch的返回值

分析:程序首先執行 try 塊里面的代碼,try 塊里面發現有異常,try 塊后面的代碼不會執行(自然也不會return),然后進入匹配異常的那個 catch 塊,然后進入 catch 塊里面將代碼執行完畢,當執行到 catch 里面的return 語句的時候,程序中止,然后將此 return 的最終結果返回回去。

二、try-catch-finally 語句塊

這種語法塊我分為了 4 種情況討論,下面進行一一列舉。

第一種情況,try 塊里面有 return 的情況,并且捕獲到異常

例1:

  1. public static void main(String[] args) { 
  2.   String result = handleException1(); 
  3.   System.out.println(result); 
  4. private static String handleException1() { 
  5.   try{ 
  6.     System.out.println("try開始"); 
  7.     String str = null
  8.     int length = str.length(); 
  9.     System.out.println("try結束"); 
  10.   }catch (Exception e){ 
  11.     System.out.println("捕獲到了異常"); 
  12.   }finally { 
  13.     System.out.println("finally塊執行完畢了"); 
  14.   } 
  15.   return "最終的結果"; 

例1執行的結果如下:

try開始 捕獲到了異常 finally塊執行完畢了 最終的結果

例2:

  1. public static void main(String[] args) { 
  2.   String result = handleException2(); 
  3.   System.out.println(result); 
  4. private static String handleException2() { 
  5.   try{ 
  6.     System.out.println("try開始"); 
  7.     String str = null
  8.     int length = str.length(); 
  9.     System.out.println("try結束"); 
  10.     return "try塊的返回值"; 
  11.   }catch (Exception e){ 
  12.     System.out.println("捕獲到了異常"); 
  13.   }finally { 
  14.     System.out.println("finally塊執行完畢了"); 
  15.   } 
  16.   return "最終的結果"; 

例2的執行結果如下:

try開始 捕獲到了異常 finally塊執行完畢了 最終的結果

分析:首先 例1 和 例2 的結果是很顯然的,當遇到異常的時候,直接進入匹配到相對應的 catch 塊,然后繼續執行 finallly 語句塊,最后將 return 結果返回回去。

第二種情況:try塊里面有return的情況,但是不會捕獲到異常

例3:

思考:下面代碼try語句塊中有return語句,那么是否執行完try語句塊就直接return退出方法了呢?

  1. public static void main(String[] args) { 
  2.   String result = handleException3(); 
  3.   System.out.println(result); 
  4. private static String handleException3() { 
  5.   try{ 
  6.       System.out.println(""); 
  7.     return "try塊的返回值"; 
  8.   }catch (Exception e){ 
  9.     System.out.println("捕獲到了異常"); 
  10.   }finally { 
  11.     System.out.println("finally塊執行完畢了"); 
  12.   } 
  13.   return "最終的結果"; 

例3的執行結果如下:

finally塊執行完畢了 try塊的返回值

分析:例3的結果其實我們可以通過打斷點的方式去看看程序的具體執行流程,通過打斷點我們可以發現,代碼先執行 try塊 里的代碼,當執行到 return 語句的時候,handleException3方法并沒有立刻結束,而是繼續執行finally塊里的代碼,finally塊里的代碼執行完后,緊接著回到 try 塊的 return 語句,再把最終結果返回回去, handleException 方法執行完畢。

第三種情況:try塊和finally里面都有return的情況

例4:

  1. public static void main(String[] args) { 
  2.     System.out.println(handleException4()); 
  3.   } 
  4.  
  5.   /** 
  6.    * 情況3:try和finally中均有return 
  7.    * @return 
  8.    */ 
  9.   private static String handleException4() { 
  10.     try{ 
  11.       System.out.println(""); 
  12.       return "try塊的返回值"; 
  13.     }catch (Exception e){ 
  14.       System.out.println("捕獲到了異常"); 
  15.     }finally { 
  16.       System.out.println("finally塊執行完畢了"); 
  17.       return "finally的返回值"; 
  18.     } 
  19.   //  return "最終的結果";//不能再有返回值 
  20.   } 

例4的執行結果:

finally塊執行完畢了 finally的返回值

分析:需要注意的是,當 try 塊和 finally 里面都有 return 的時候,在 try/catch/finally 語法塊之外不允許再有return 關鍵字。我們還是通過在程序中打斷點的方式來看看代碼的具體執行流程。代碼首先執行 try 塊 里的代碼,當執行到 return 語句的時候,handleException4 方法并沒有立刻結束,而是繼續執行 finally 塊里的代碼,當發現 finally 塊里有 return 的時候,直接將 finally 里的返回值(也就是最終結果)返回回去, handleException4 方法執行完畢。

第四種情況:try塊,catch塊,finally塊都有return

例5:

  1. public static void main(String[] args) { 
  2.     System.out.println(handleException5()); 
  3.   } 
  4.  
  5.   /** 
  6.    * 情況4:try,catch,finally都有return 
  7.    * @return 
  8.    */ 
  9.   private static String handleException5() { 
  10.     try{ 
  11.       System.out.println("try開始"); 
  12.       int[] array = {1, 2, 3}; 
  13.       int i = array[10]; 
  14.       System.out.println("try結束"); 
  15.       return "try塊的返回值"; 
  16.     }catch (Exception e){ 
  17.       e.printStackTrace();//這行代碼其實就是打印輸出異常的具體信息 
  18.       System.out.println("捕獲到了異常"); 
  19.       return "catch的返回值"; 
  20.     }finally { 
  21.       System.out.println("finally塊執行完畢了"); 
  22.       return "finally的返回值"; 
  23.     } 
  24. //    return "最終的結果"; 
  25.   } 

例5的執行結果:

  1. try開始 捕獲到了異常 finally塊執行完畢了 finally的返回值  
  2. java.lang.ArrayIndexOutOfBoundsException: 10 at  
  3. com.example.javabasic.javabasic.ExceptionAndError.TryCatchFinally.handleException5(TryCatchFinally.java:25) at  
  4. com.example.javabasic.javabasic.ExceptionAndError.TryCatchFinally.main(TryCatchFinally.java:14) 

分析:程序首先執行try塊里面的代碼,try塊里面發現有異常,try塊后面的代碼不會執行(自然也不會return),然后進入匹配異常的那個catch塊,然后進入catch塊里面將代碼執行完畢,當執行到catch里面的return語句的時候,程序不會馬上終止,而是繼續執行finally塊的代碼,最后執行finally里面的return,然后將此return的最終結果返回回去。

總結

其實,我們通過以上例子我們可以發現,不管return關鍵字在哪,finally一定會執行完畢。理論上來說try、catch、finally塊中都允許書寫return關鍵字,但是執行優先級較低的塊中的return關鍵字定義的返回值將覆蓋執行優先級較高的塊中return關鍵字定義的返回值。也就是說finally塊中定義的返回值將會覆蓋catch塊、try塊中定義的返回值;catch塊中定義的返回值將會覆蓋try塊中定義的返回值。 再換句話說如果在finally塊中通過return關鍵字定義了返回值,那么之前所有通過return關鍵字定義的返回值都將失效——因為finally塊中的代碼一定是會執行的。

本文授權轉載自公眾號「良許Linux」。良許,世界500強外企Linux開發工程師,公眾號里分享大量Linux干貨,歡迎關注!

 

責任編輯:趙寧寧 來源: 今日頭條
相關推薦

2024-05-10 11:43:23

C#編程

2021-03-31 11:52:24

try-catch-fJava代碼

2021-01-13 09:55:29

try-catch-fJava代碼

2021-02-25 09:35:32

語句elsePython

2024-12-02 11:07:24

Java代碼機制

2021-01-28 08:03:44

程序員 finallyreturn

2020-10-28 09:32:01

Javareturnfinally

2010-08-18 10:52:46

Linux筆試

2020-08-24 13:35:59

trycatchJava

2020-09-27 07:48:40

不用try catch

2024-09-24 08:18:13

2010-09-03 14:39:15

SQLSELECT語句

2010-09-03 15:47:40

SQL語句鎖定

2021-02-22 08:39:03

Java關鍵字Java基礎

2024-05-24 08:59:15

2025-08-07 06:05:00

try/catch前端JavaScrip

2024-06-25 10:37:11

2009-12-02 19:56:33

PHP中try{}ca

2025-01-16 12:00:00

try-catchfor循環

2023-11-13 17:01:26

C++編程
點贊
收藏

51CTO技術棧公眾號

六月丁香激情综合| 金瓶狂野欧美性猛交xxxx| 亚洲精品欧美日韩| 国产美女视频一区| 国产精品露脸视频| 国产精品99久久久久久久久| 日韩激情视频在线观看| 一本色道久久综合精品婷婷| 国产精品国产精品国产专区蜜臀ah| 成人不卡免费av| www.狠狠干| 久久久神马电影| 97aⅴ精品视频一二三区| 成年在线电影| 日韩精品―中文字幕| 欧美日韩激情一区二区三区| 日韩精品欧美大片| 91免费在线看片| 久久在线免费视频| 久久99久久99小草精品免视看| 亚洲av无码乱码国产麻豆| 日本一区二区三区在线视频 | 久久国产天堂福利天堂| 久久午夜电影| 可以在线观看的av网站| av在线播放亚洲| 欧美va天堂va视频va在线| 一级毛片免费高清中文字幕久久网| 亚洲天天综合网| 日韩aⅴ视频一区二区三区| 亚洲h在线观看| 亚洲啊v在线免费视频| 日本一区二区视频在线播放| 久操成人在线视频| 国产电影精品久久禁18| a级影片在线观看| 日韩精品视频网址| 色噜噜久久综合伊人一本| 欧美视频久久| 天堂av在线资源| 美女av免费在线观看| 精品国产99国产精品| 在线成人www免费观看视频| 精品久久人妻av中文字幕| 最近免费观看高清韩国日本大全| 日韩欧美视频一区| 99热免费精品在线观看| 国产黄色在线| 肉丝美足丝袜一区二区三区四| 日韩在线中文字| 风间由美性色一区二区三区 | 免费视频最近日韩| av中文字幕一区二区三区| avtt中文字幕| 国产精品99久久久久久白浆小说 | 国产乱色精品成人免费视频| 国产成人黄色片| 久久影院在线观看| 91一区二区三区在线观看| 欧美日韩破处视频| 91久久国产综合久久91| 日韩福利影院| 亚洲欧美资源在线| 91一区二区三区在线观看| 中文字幕一区二区三区中文字幕| 中文字幕网址在线| av五月天在线| 91国产美女视频| 亚洲已满18点击进入久久| 日韩精品丝袜美腿| 亚洲精品字幕在线观看| 亚洲精品乱码久久久久久9色| 日韩免费观看高清| 欧美日韩一区免费| 国产欧美午夜| 中文字幕 在线观看| 国产成人在线视频观看| av日韩一区二区三区| 欧美成在线观看| 亚洲男人天堂一区| 亚洲欧美文学| av免费在线视| 日本一级一片免费视频| 日韩 欧美 视频| 欧美国产中文字幕| 天天综合天天综合色| 亚洲专区一区| 秋霞国产精品| 99精品国产99久久久久久97| 亚洲自拍第三页| 亚洲va欧美va国产综合久久| 精品国产露脸精彩对白| 国产成人在线影院| 亚洲另类av| 二区三区在线| 青青青在线免费观看| 亚洲精品中文字幕在线| 亚洲最大中文字幕| 一区二区日韩av| 日本亚洲免费观看| crdy在线观看欧美| 黄网站在线观看| 国产调教在线观看| 免费视频爱爱太爽了| 欧美与欧洲交xxxx免费观看| 樱花草国产18久久久久| 日韩福利电影在线观看| aaa国产精品视频| 77导航福利在线| 亚洲男人的天堂在线视频| 高清中文字幕mv的电影| 综合久久国产| 69视频在线播放| 欧美色综合天天久久综合精品| 狠狠色综合日日| 国产精品探花在线观看| av电影免费在线看| 亚洲精品国产一区二| 欧洲女同同性吃奶| 精品久久久久久久久久中文字幕| 成人在线视频网址| 欧美日韩成人免费| 在线看日韩精品电影| 91亚洲精品久久久蜜桃网站| 极品美女一区二区三区| 天天免费亚洲黑人免费| 国产在线观看免费| 在线播放精品视频| 免费看91的网站| 亚洲精品高清无码视频| 精品伦精品一区二区三区视频| 欧美激情欧美狂野欧美精品| 91精品综合久久久久久| 亚洲欧美一区二区不卡| 美国毛片一区二区| 欧美日韩国内| 伊人久久综合影院| 亚洲欧美在线人成swag| 你懂的在线网址| 欧美成人精品网站| 一区二区成人免费视频| 999精品免费视频| 亚洲成熟丰满熟妇高潮xxxxx| 激情视频一区二区| 欧美重口另类videos人妖| 中文字幕国产亚洲| 亚洲国产中文字幕在线观看| 在线观看免费视频综合| 久久老女人爱爱| 久久国产视频网| 亚洲九九精品| 色婷婷一区二区三区| 成人性生交大片免费看中文视频| 日本不卡1234视频| 午夜影院免费在线| 欧美成人高清在线| 黄上黄在线观看| 无码精品一区二区三区在线| 亚洲国产综合一区| 中文字幕人妻一区二区在线视频| 日韩视频中文字幕在线观看| 亚洲成人黄色av| 五月天丁香社区| 亚洲精品手机在线观看| 国产免费一区二区三区视频| 亚洲人成77777| 日本精品二区| 国产一区二区中文字幕免费看| 成人免费看吃奶视频网站| 97视频在线免费观看| 在线电影欧美日韩一区二区私密| 亚洲国产精品成人精品 | 日本精品久久久久影院| 日本不卡高字幕在线2019| 97久久精品在线| 高清欧美性猛交xxxx| 久久天堂电影网| 久久久av亚洲男天堂| 色偷偷9999www| 亚洲欧美色图片| 精品国产一区二区三区忘忧草| 日韩一级片在线播放| 正在播放一区二区| 欧美另类z0zxhd电影| 91精品午夜视频| 精品精品欲导航| 日韩欧美亚洲国产另类| 日韩欧美亚洲国产精品字幕久久久| 亚洲成人精品久久久| 在线播放91灌醉迷j高跟美女| 6080日韩午夜伦伦午夜伦| 日韩丝袜美女视频| 国产小视频91| 欧美激情一级精品国产| 国语自产精品视频在线看一大j8 | 美女主播视频一区| 色涩成人影视在线播放| 国产欧美综合一区| 97在线播放视频| 韩国一区二区三区四区| 欧美大波大乳巨大乳| 久久精品黄色片| 这里只有精品6| 999av视频| 幼a在线观看| 国内激情视频在线观看| 国内自拍亚洲| 国产一区二区三区电影在线观看| 欧美黄色精品| 精品一区二区三区免费视频| 91在线小视频| 一区二区三区四区五区视频在线观看| 色94色欧美sute亚洲线路一久| 日韩女优视频免费观看| 日韩在线视频网站| 国产精品久久久久久亚洲影视| 国产一区二区免费在线观看| 男女激烈动态图| 凹凸国产熟女精品视频| 精品影片一区二区入口| 免费在线看黄网址| 国产 日韩 欧美 综合| 欧美激情午夜| 成人在线观看免费播放| 成人在线国产| 麻豆国产91在线播放| 亚洲欧洲国产日本综合| 欧美人成免费网站| 免费av一区二区| 91网免费观看| 在线视频一区观看| 色黄视频免费看| 免费在线观看国产精品| 日本黄色三级视频| 成人a在线视频免费观看| 日韩视频在线直播| 国产精品美女久久久| 久久久噜噜噜久久中文字幕色伊伊| 亚洲国产成人av网| 亚洲图片欧美午夜| 91传媒视频免费| 黄色免费网址大全| 日韩精品一区二区在线播放| 成人欧美亚洲| 小说区图片区亚洲| 精品成人一区| 国产目拍亚洲精品99久久精品| 欧美日韩综合色| 欧美激情在线观看视频| 欧美一区二区在线| av在线免费观看不卡| 中文字幕在线播| 日本视频在线免费观看| 国产一区二区精品福利地址| 国产成人在线电影| 色国产综合视频| 久久久久久久影院| 国产一区二区三区播放| 三上悠亚影音先锋| 天堂在线观看视频| 岛国精品一区| 成人永久aaa| 欧美最猛黑人xxxxx猛交| 国模精品系列视频| 欧美人与动牲交xxxxbbbb| 日本黄色小视频在线观看| 亚洲三级黄色片| 日韩有码av| gogo大胆日本视频一区| 欧美一级一区二区| 日韩理伦片在线| 青青草超碰在线| 先锋影音国产精品| 久久夜色精品一区| 亚洲四色影视在线观看| 亚洲影影院av| 99re6在线观看| 亚洲精品www久久久久久| 国产ktv在线视频| 国产精品入口| 亚洲国产另类精品专区| 欧美在线激情网| 久久综合久久久久| 一级成人黄色片| 国模大尺度视频一区二区| 国产乱人伦偷精品视频不卡| 91精品国产品国语在线不卡| 1卡2卡3卡精品视频| 草草影院第一页| 日日夜夜精品一区| 日韩视频在线一区二区三区 | 亚洲精品在线视频观看| 欧美性猛交bbbbb精品| 日韩激情精品| 91香蕉视频污| 亚洲欧美精品在线| 色吧亚洲视频| 精品99在线观看| 日本精品在线中文字幕| 精品一区二区三区视频在线观看| 精品久久久久久最新网址| 国产三区精品| 欧美日韩在线视频免费播放| 99riav视频一区二区| 99久久久免费精品国产一区二区| 在线激情影院一区| 毛片av免费在线观看| 性一交一乱一精一晶| 亚洲精品一区二区妖精| 亚洲综合色区另类av| 久久久久久久影院| 国产精品亚洲一区二区无码| 最新97超碰在线| 午夜亚洲一区| 日韩成人激情在线| 六月丁香婷婷激情| 天堂中文在线资| 亚洲国产日韩欧美在线| 欧美天天综合色影久久精品| 99re在线视频观看| 91av在线免费视频| 久久久久久毛片免费看| 中文字幕不卡的av| 国产精品久久久亚洲| 黄色a一级视频| 欧美xxxx黑人又粗又长| 日本vs亚洲vs韩国一区三区| 亚洲国产精品电影在线观看| 国产视频一区二区视频| 在线观看黄av| 国产精选一区二区三区| 欧美激情综合色综合啪啪五月| 久久久久亚洲av片无码v| av小说在线播放| 欧美视频专区一二在线观看| 一区二区国产日产| 国产视频网站在线| 欧美oldwomenvideos| 欧美视频一区二区在线观看| 黄色成人在线免费观看| 男女网站在线观看| 久久精品国产999大香线蕉| 伦理中文字幕亚洲| 夜夜春很很躁夜夜躁| 精品成人自拍视频| 欧美私模裸体表演在线观看| 国产精品又粗又长| 亚洲无线看天堂av| 国产精品免费看片| 日本一区二区在线视频| 丰满人妻一区二区| 国产精品亚洲人在线观看| 国产精品香蕉av| 成人毛片一区二区三区| 亚洲一区免费| 国内精品国产三级国产在线专| 日韩va亚洲va欧美va清高| 亚洲最大在线| 亚洲色图偷窥自拍| 亚洲一区二区三区日韩| 欧美极品中文字幕| 亚洲国产精品字幕| 中文字幕乱码在线| 欧美日韩午夜电影网| 7777精品伊人久久久大香线蕉的| 亚洲精品午夜在线观看| gogo大尺度成人免费视频| 欧美精品久久99| 亚洲黄色小说在线观看| 99香蕉久久| 亚洲精品mp4| 亚洲理论片在线观看| 91成人国产| 国内精品视频在线| 青青艹在线观看| 中文字幕一区不卡| 国产欧美高清在线| 综合伊思人在钱三区| 国产成人在线精品| 亚洲人午夜射精精品日韩| 色菇凉天天综合网| 麻豆国产尤物av尤物在线观看| 亚洲成人综合视频| 欧美精品激情在线观看| 免费网站在线观看人| 国产成人亚洲欧美| 日韩视频免费| 老熟妇精品一区二区三区| 欧美综合久久久| av基地在线| 91精品久久久久久久久久久| 午夜性色一区二区三区免费视频| 亚洲精品激情视频| 日本高清不卡一区| 麻豆视频在线播放| 精品一卡二卡三卡四卡日本乱码| 久久亚洲视频| 亚洲成人生活片| 精品中文视频在线| 欧美一级大片在线视频|