精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

国产又粗又硬又长又爽| jizzzz日本| 韩国中文字幕2020精品| 蜜桃久久av一区| 欧美乱大交xxxxx另类电影| 国产综合内射日韩久| 色婷婷综合久久久中字幕精品久久| 国产精品久久久久久户外露出 | 日韩激情视频在线播放| 日韩欧美xxxx| 亚洲夜夜综合| 亚洲国产激情av| 国产一区二区无遮挡| 在线观看中文字幕av| 亚洲高清电影| 日韩亚洲精品视频| 扒开jk护士狂揉免费| 北岛玲精品视频在线观看| 欧美日韩免费在线观看| 亚洲福利电影网| 亚洲a级在线播放观看| 国产精品第5页| 国内自拍一区| 久久国产一区二区三区| 成人片黄网站色大片免费毛片| 精品视频成人| 欧美三区在线观看| www国产黄色| 超黄网站在线观看| 亚洲精品视频自拍| 亚洲欧洲免费无码| 国产小视频在线播放| 99精品国产91久久久久久| 亚洲影院色无极综合| 曰批又黄又爽免费视频| 麻豆精品网站| 51午夜精品视频| 久久久久久av无码免费网站| 亚洲国产精品综合久久久| 在线亚洲午夜片av大片| 天天干天天舔天天操| 夜色77av精品影院| 亚洲激情久久久| 黄色国产在线视频| 2020最新国产精品| 日韩精品一区二区三区在线播放 | 国产麻豆精品在线| 成人国产精品一区二区| 亚洲天堂视频在线| 久久精品国产999大香线蕉| 国产精品精品国产| 欧美成人一区二区视频| 天堂成人国产精品一区| 青青草原一区二区| 国产亚洲欧美日韩高清| 老牛国产精品一区的观看方式| 九色综合国产一区二区三区| 国产综合在线看| 国产精品18p| 日韩一级免费| 欧美洲成人男女午夜视频| 制服.丝袜.亚洲.中文.综合懂色| 在线亚洲自拍| 日本欧美国产在线| 中文在线免费看视频| 美女免费视频一区二区| 成人网中文字幕| wwwxxxx国产| 成人三级在线视频| 欧美不卡三区| 爱久久·www| 亚洲欧美另类在线| 久久艹国产精品| 东京一区二区| 欧美日韩视频第一区| 国产免费中文字幕| 视频一区中文字幕精品| 日韩精品视频在线观看免费| 无码一区二区三区在线| 久久精品国内一区二区三区水蜜桃 | 四季av一区二区三区免费观看| 日韩视频免费中文字幕| 欧美精品99久久久| 午夜在线视频观看日韩17c| 国产成人在线视频| 国产精品伦一区二区三区| 丰满岳乱妇一区二区三区| 久久精品人成| 三级外国片在线观看视频| 一区二区三区四区视频精品免费 | 99re久久| 欧美成人一区二区三区| 国产男女猛烈无遮挡a片漫画| 精品福利久久久| 九九热99久久久国产盗摄| av网站中文字幕| 精品亚洲成a人在线观看| 国产亚洲情侣一区二区无| 国产中文在线| 亚洲午夜久久久久中文字幕久| 欧美日韩亚洲一| www.久久久久爱免| 亚洲伦理中文字幕| 免费在线看黄网址| 免费观看成人av| 国产综合第一页| 国产在线高清理伦片a| 精品国产91久久久久久| 一区二区三区 欧美| 一区视频网站| 综合久久五月天| 青青国产在线观看| 国产一区 二区 三区一级| 欧美极品日韩| 色婷婷视频在线观看| 欧美色男人天堂| 国产老熟女伦老熟妇露脸| 午夜片欧美伦| 国产精品免费久久久久影院| 免费av一级片| 亚洲免费资源在线播放| 天堂在线资源视频| 偷拍精品福利视频导航| 欧美丰满老妇厨房牲生活| 中文字幕日韩经典| 久久久久久久久99精品| 黄网站欧美内射| 秋霞一区二区| 操91在线视频| 国产口爆吞精一区二区| 欧美激情一区二区在线| 成年人免费在线播放| 日本天堂一区| 91国语精品自产拍在线观看性色 | 成人在线高清| 亚洲欧洲日产国产网站| 国产精品7777777| 成人99免费视频| 大伊香蕉精品视频在线| 4438全国亚洲精品观看视频| 欧美美女15p| 国产超碰人人模人人爽人人添| 国产精品成人在线观看| 中文字幕第38页| 日韩.com| 成人免费大片黄在线播放| 日p在线观看| 欧美日韩一级二级三级| 99热6这里只有精品| 精品一区二区在线免费观看| 亚洲春色在线| 亚洲tv在线| 久久伊人精品天天| 国产aⅴ爽av久久久久成人| 一区二区三区四区国产精品| 亚洲 自拍 另类 欧美 丝袜| 欧美激情 亚洲a∨综合| 成人精品一二区| 肉体视频在线| 亚洲国产天堂久久综合| 伊人手机在线视频| 97国产精品videossex| 国产美女无遮挡网站| 婷婷激情久久| 国产日产久久高清欧美一区| 精产国品自在线www| 欧美一区二区日韩| 亚洲精品午夜久久久久久久| 久久综合九色综合97_久久久| 欧美日韩一区二区在线免费观看| 欧美一区二区三| 成人免费黄色网| 欧美人与牲禽动交com| 亚洲国产小视频| 91青青草视频| 亚洲日本va午夜在线影院| 久草免费资源站| 久久久久99| 潘金莲一级淫片aaaaaa播放1| 国产女人18毛片水真多18精品| 欧美在线日韩在线| 午夜在线小视频| 亚洲精品一区二区在线观看| 国产剧情在线视频| 亚洲手机成人高清视频| 少妇精品一区二区| 麻豆一区二区99久久久久| 日韩精品免费一区| 国产伦精品一区二区三区千人斩 | 亚洲人在线观看视频| 欧美性做爰猛烈叫床潮| 久久久国产精华液| 国产亚洲短视频| 欧美日韩久久婷婷| 日韩视频一区二区三区在线播放免费观看 | 亚洲最大综合网| 韩国av一区| 亚洲福利av| 久久国产精品色av免费看| 青青草成人在线| 蜜桃传媒在线观看免费进入| 中文字幕9999| 深夜福利视频网站| 欧美伦理视频网站| 久久99国产综合精品免费| 亚洲人成伊人成综合网小说| 公侵犯人妻一区二区三区| 国产精品亚洲第一区在线暖暖韩国| 亚洲欧洲日产国码无码久久99| 亚洲成人tv| 色播五月综合| 欧美日韩大片免费观看| 亚洲xxxxx| 日本精品久久| 欧美最猛性xxxxx亚洲精品| av小次郎在线| 日韩一区二区福利| 你懂的在线视频| 亚洲国产又黄又爽女人高潮的| 91尤物国产福利在线观看| 欧美性极品xxxx娇小| 国产一级特黄毛片| 亚洲乱码中文字幕综合| 国产一区二区三区视频播放| 久久久久久久久久看片| 国产又黄又粗又猛又爽的视频 | 欧洲亚洲一区二区| 色爱综合av| 国产偷国产偷亚洲高清97cao| 国产精品欧美一区二区三区不卡| 国产精品久久久久9999| 视频二区不卡| 日韩av免费在线观看| 午夜影视一区二区三区| 97热精品视频官网| 国产高清自产拍av在线| 国产最新精品视频| 97人人在线视频| 高清在线视频日韩欧美| 免费电影网站在线视频观看福利| 久久99久国产精品黄毛片入口| www免费视频观看在线| 日韩中文视频免费在线观看| www.av在线播放| 色婷婷成人综合| 乱人伦中文视频在线| 久热精品视频在线| 色帝国亚洲欧美在线| 欧美精品www| 擼擼色在线看观看免费| 欧美最猛性xxxxx亚洲精品| 欧美成人资源| 国产精品视频免费在线| 综合久草视频| 97夜夜澡人人双人人人喊| 亚洲高清在线一区| 国产偷国产偷亚洲高清97cao| 欧美丝袜足交| 日本在线成人一区二区| 成人在线免费观看视频| 在线一区高清| 在线观看日韩av电影| 成年人视频观看| 日本成人在线一区| 色18美女社区| 成人午夜在线免费| 公侵犯人妻一区二区三区| 国产精品短视频| 久久婷婷一区二区| 日韩欧美国产激情| 一区两区小视频| 欧美α欧美αv大片| 手机在线观看毛片| 亚洲一级免费视频| 中中文字幕av在线| 日本高清不卡在线| 国产成人视屏| 久久99精品久久久久久秒播放器| 欧美一区二区麻豆红桃视频| www.一区二区.com| 久久久噜噜噜久久狠狠50岁| 无尽裸体动漫2d在线观看| 丰满岳乱妇一区二区三区| 免费福利视频网站| 亚洲最新在线观看| 国产第一页在线观看| 日韩欧美高清dvd碟片| 日本一本草久在线中文| 久久精品一本久久99精品| √天堂8资源中文在线| 国产精品久久久久久影视| 88久久精品| 亚洲精品高清国产一线久久| 欧美午夜a级限制福利片| 好男人www社区| 国产**成人网毛片九色| 久久精品三级视频| 午夜久久久久久电影| 夜夜狠狠擅视频| 亚洲国产99精品国自产| 免费大片黄在线观看视频网站| 91成人性视频| 日韩在线精品强乱中文字幕| 色999五月色| 国产精品丝袜xxxxxxx| 性久久久久久久久久久久久久| 久久久久久久久免费| 日本一区二区三区免费视频| 制服丝袜亚洲精品中文字幕| 免费a在线观看| 久久全国免费视频| 国产精品1区| 亚洲一区尤物| 久久久精品网| 极品白嫩丰满美女无套| 一区二区三区**美女毛片| 中文字幕在线2019| 亚洲精品中文字幕女同| 成人在线免费观看黄色| 亚洲永久在线观看| 99久久精品网| 久久久久久久久久久久91| 久久人人超碰精品| 91九色丨porny丨肉丝| 欧美xxxxxxxx| 羞羞视频在线观看不卡| 成人美女免费网站视频| 日韩精品一卡| 日韩a在线播放| 99久久99久久精品免费看蜜桃| 久草视频在线资源站| 4438x亚洲最大成人网| 成全电影播放在线观看国语| 青青草原一区二区| 天堂网av成人| 精品人妻少妇一区二区| 国产经典欧美精品| 欧美激情图片小说| 欧美一区二区高清| www视频在线看| 99精彩视频在线观看免费| 亚洲综合小说| 深夜福利网站在线观看| 亚洲男同性恋视频| 精品国自产拍在线观看| 欧美巨大黑人极品精男| 日韩一区二区三区精品| 大荫蒂性生交片| av一区二区久久| 成人午夜视频精品一区| 国产视频精品在线| 亚洲www免费| 亚洲成人自拍| 国产精一品亚洲二区在线视频| 激情五月婷婷在线| 亚洲第一区在线观看| 蜜桃视频在线网站| 日本成人看片网址| 麻豆精品国产传媒mv男同| 97在线观看免费高| 在线成人av影院| 日韩欧美一起| 精品一区在线播放| 欧美a级一区二区| 欧美日韩午夜视频| 精品福利av导航| 伊人久久在线| 一区二区三区欧美成人| 国产很黄免费观看久久| 你懂的国产视频| 最新91在线视频| 亚洲国产一区二区三区网站| 人妻少妇精品无码专区二区| 久久久三级国产网站| 国产又黄又大又粗的视频| 欧美人在线视频| 国产精品密蕾丝视频下载| 日本在线播放一区二区| 亚洲福利一区二区| 国产对白叫床清晰在线播放| 亚洲xxxxx| 丝袜美腿亚洲综合| 乱h高h女3p含苞待放| 日韩电影中文字幕在线| 久久久免费人体| 国产一级爱c视频| 久久午夜免费电影| 国产乱子伦精品无码码专区| 97久久精品在线| 久久久久亚洲| 亚洲天堂久久新| 日韩一级高清毛片| 日韩电影网站| 男人添女人下部视频免费| 久久精品亚洲国产奇米99| 国产91视频在线| 国产精品爽黄69| 99精品视频免费观看视频| 久久嫩草捆绑紧缚| 亚洲美女精品成人在线视频|