亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

java異常處理

2019-11-06 06:03:24
字體:
來源:轉載
供稿:網友
java 異常處理

java.lang.Object

|----java.lang.Throwable |-------java.lang.Error:錯誤,java程序對此無能為力,不顯式的處理 |-------java.lang.Exception:異常。需要進行處理 |------RuntimeException:運行時異常 |-----ArrayIndexOutOfBoundsException/NullPointerException/ArithmeticException/ClassCastException |------非RuntimeException:編譯時異常

2.因為java程序分為javac.exe和java.exe兩個過程,在每個過程中,都有可能出現異常。故分為編譯時異常、運行時異常

2.1 對于運行時異常比較常見,可以不顯式的來處理。

2.2 對于編譯時異常,必須要顯式的處理

編譯時異常,不是說有異常才處理,而是存在異常的隱患,必須在編譯前,提示程序,萬一出現異常,如何處理!

2.如何處理異常?

java 中的“抓拋模型”

1.”拋”:當我們執行代碼時,一旦出現異常,就會在異常的代碼處生成一個對應的異常類型的對象,并 將此對象拋出。(自動拋出 / 手動拋出)>一旦拋出此異常類的對象,那么程序就終止執行>此異常類的對象拋給方法的調用者。2.”抓”:抓住上一步拋出來的異常類的對象。如何抓?即為異常處理的方式java 提供了兩種方式用來處理一個異常類的對象。

處理的方式一:

try{ //可能出現異常的代碼 }catch(Exception1 e1){ //處理的方式1 }catch(Exception2 e2){ //處理的方式2 }finally{ //一定要執行的代碼 }

注:1.try內聲明的變量,類似于局部變量,出了try{}語句,就不能被調用

2.finally是可選的。3.catch語句內部是對異常對象的處理:>getMessage(); PRintStackTrace();4.可以有多個catch語句,try中拋出的異常類對象從上往下去匹配catch中的異常類的類型,一旦滿足就執行catch中的代碼。執行完,就跳出其后的多條catch語句5.如果異常處理了,那么其后的代碼繼續執行。6.若catch中多個異常類型是”并列”關系,孰上孰下都可以。若catch中多個異常類型是”包含”關系,須將子類放在父類的上面,進行處理。否則報錯!7.finally中存放的是一定會被執行的代碼,不管try中、catch中是否仍有異常未被處理,以及是否有return語句。

8.try-catch是可以嵌套的。

處理方式二:在方法的聲明處,顯式的使用throws + 異常類型public void method1() throws Exception1 e1,Exception2 e2{ //可能出現異常(尤其是編譯時異常,一定要處理)}public void method2() throws Exception1 e1,Exception2 e2{ method1();}public void method3(){ try{ method2(); }catch(Exception1 e1){ System.out.println(e1.getMessage()); }catch(Exception2 e2){ System.out.println(e2.getMessage()); } } public static void main(String[] args){ 對象1.method3();//不會再出現上述的Exception1和Exception2的異常! }

3.如何手動的拋出一個異常? 在方法的內部,可以使用 throw + 異常類對象,來手動的拋出一個異常!

//比較兩個圓的半徑的大小。public int compareTo(Object obj) throws Exception{ if(this == obj){ return 0; } else if(obj instanceof Circle){ Circle c = (Circle)obj; if(this.radius > c.radius){ return 1; }else if(this.radius == c.radius){ return 0; }else{ return -1; } }else{ //return -2; //手動的拋出一個異常 //throw new Exception("傳入的類型有誤!"); //throw new String("傳入的類型有誤!"); throw new MyException("傳入的類型有誤!"); }}

4.如何自定義一個異常類?

手動的拋出一個異常,除了拋出的是現成的異常類的對象之外,還可以拋出一個自定義的異常類的對象!

如何自定義一個異常類呢?

//1.自定義的異常類繼承現有的異常類

//2.提供一個序列號,提供幾個重載的構造器

public class MyException extends Exception{ static final long serialVersionUID = -70348975766939L; public MyException(){ } public MyException(String msg){ super(msg); }}

try catch finally return 執行順序

情況1: try{} catch(){}finally{} return;

顯然程序按順序執行。

情況2: try{ return; }catch(){} finally{} return;

程序執行try塊中return之前(包括return語句中的表達式運算)代碼; 再執行finally塊,最后執行try中return; finally塊之后的語句return,因為程序在try中已經return所以不再執行。

情況3: try{ } catch(){return;} finally{} return;

程序先執行try,如果遇到異常執行catch塊, 有異常:則執行catch中return之前(包括return語句中的表達式運算)代碼,再執行finally語句中全部代碼, 最后執行catch塊中return. finally之后也就是4處的代碼不再執行。 無異常:執行完try再finally再return.

情況4: try{ return; }catch(){} finally{return;}

程序執行try塊中return之前(包括return語句中的表達式運算)代碼; 再執行finally塊,因為finally塊中有return所以提前退出。

情況5: try{} catch(){return;}finally{return;}

程序執行catch塊中return之前(包括return語句中的表達式運算)代碼; 再執行finally塊,因為finally塊中有return所以提前退出。

情況6: try{ return;}catch(){return;} finally{return;}

程序執行try塊中return之前(包括return語句中的表達式運算)代碼; 有異常:執行catch塊中return之前(包括return語句中的表達式運算)代碼; 則再執行finally塊,因為finally塊中有return所以提前退出。 無異常:則再執行finally塊,因為finally塊中有return所以提前退出。

最終結論:任何執行try 或者catch中的return語句之前,都會先執行finally語句,如果finally存在的話。 如果finally中有return語句,那么程序就return了,所以finally中的return是一定會被return的, 編譯器把finally中的return實現為一個warning。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产欧美精品一区二区三区-老狼| 欧美性猛交xxxx黑人猛交| 欧美裸身视频免费观看| 国产成人av在线| 久久久电影免费观看完整版| 国产成人91久久精品| 久久免费在线观看| 欧美午夜激情在线| 欧美激情一区二区三区在线视频观看| 在线a欧美视频| 日本免费久久高清视频| 亚洲欧美日韩图片| 色婷婷久久一区二区| 国产小视频91| 2024亚洲男人天堂| 国产区亚洲区欧美区| 欧美亚洲另类制服自拍| 亚洲欧美在线磁力| 中文字幕亚洲色图| 91沈先生作品| 欧美日韩在线另类| 精品亚洲一区二区三区在线播放| 1769国内精品视频在线播放| 搡老女人一区二区三区视频tv| 欧美成人午夜剧场免费观看| 久久久久久久久久久av| 国产精品电影久久久久电影网| 中文字幕日韩欧美| 日韩美女免费观看| 高清视频欧美一级| 中文字幕综合一区| 欧美一级淫片aaaaaaa视频| 美女扒开尿口让男人操亚洲视频网站| 亚洲欧美国产一区二区三区| 日韩有码在线播放| 亚洲精品一区av在线播放| 国产精品你懂得| 日韩av成人在线观看| 亚洲欧洲在线免费| 亚洲国产精品va在线看黑人动漫| 久久不射电影网| 欧美国产亚洲精品久久久8v| 色狠狠av一区二区三区香蕉蜜桃| 国产经典一区二区| 在线播放国产一区中文字幕剧情欧美| 精品高清一区二区三区| 日韩免费视频在线观看| 伊人伊成久久人综合网小说| 欧美日韩国产中文字幕| 在线视频亚洲欧美| 久久精品视频在线| 欧美日韩在线影院| 久久艳片www.17c.com| 久久欧美在线电影| 97欧美精品一区二区三区| 最新日韩中文字幕| 久久精品国产成人| 福利微拍一区二区| 尤物精品国产第一福利三区| 欧美日韩成人在线视频| 国产主播喷水一区二区| 亚洲香蕉成视频在线观看| 日韩av成人在线观看| 自拍偷拍亚洲精品| 国产精品久久久久久久久久小说| 欧美富婆性猛交| 欧美黄网免费在线观看| 欧美国产精品人人做人人爱| 日本高清不卡的在线| 亚洲一区二区三区香蕉| 亚洲91精品在线观看| 欧美成人激情视频免费观看| 欧美大胆在线视频| 国产精品黄页免费高清在线观看| 成人福利视频在线观看| 欧美体内谢she精2性欧美| 亚洲第一精品久久忘忧草社区| 色天天综合狠狠色| 中文字幕亚洲欧美日韩在线不卡| 91中文字幕在线| www.亚洲一二| 午夜免费在线观看精品视频| 91免费看片网站| 久久这里有精品| 日本一区二区不卡| 日韩黄在线观看| 一区二区福利视频| 一本一本久久a久久精品牛牛影视| 国产精品h在线观看| 亚洲国产精品99久久| 中文字幕免费国产精品| 国产精品羞羞答答| 亚洲国产日韩欧美综合久久| 日韩美女在线播放| 狠狠色噜噜狠狠狠狠97| 欧美在线视频观看| 国产欧美一区二区白浆黑人| 亚洲va欧美va在线观看| 亚洲无线码在线一区观看| 色视频www在线播放国产成人| 在线视频欧美日韩| 欧美大片免费观看在线观看网站推荐| 日韩精品免费视频| 成人乱人伦精品视频在线观看| 97香蕉久久超级碰碰高清版| 亚洲成人网久久久| 欧美激情喷水视频| 欧美日韩视频在线| 在线精品国产成人综合| 国产精品视频在线观看| 欧美有码在线视频| 精品亚洲一区二区三区在线播放| 亚洲精品国产美女| 欧美激情精品久久久久| 成人黄在线观看| 久久手机精品视频| 日韩一区二区av| 亲子乱一区二区三区电影| 国产精品成人久久久久| 国产精品99久久久久久www| 国产日韩在线看片| 97涩涩爰在线观看亚洲| 91天堂在线视频| 久久久人成影片一区二区三区| 欧美片一区二区三区| 国产成人精品午夜| 在线观看久久久久久| 91在线观看免费观看| 在线性视频日韩欧美| 午夜精品一区二区三区av| 美女av一区二区三区| 亚洲国产成人91精品| 久久久久久久久91| 欧美精品一二区| 亚洲国产精品一区二区三区| 亚洲一区二区中文| 一区二区三区www| 亚洲国产成人精品女人久久久| 亚洲国产精品人人爽夜夜爽| 日韩极品精品视频免费观看| 色综合伊人色综合网| 亚洲香蕉成人av网站在线观看| 欧美电影在线播放| 国产在线精品一区免费香蕉| 日韩一区av在线| 久久亚洲私人国产精品va| 亚洲第一网中文字幕| 裸体女人亚洲精品一区| 欧美一级电影免费在线观看| 国产精品va在线播放我和闺蜜| 亚洲男人的天堂网站| 日韩av免费网站| 91精品国产亚洲| 亚洲字幕在线观看| 日韩av片免费在线观看| 日韩一区二区三区xxxx| 亚洲偷熟乱区亚洲香蕉av| 欧美激情视频网| 久久久精品一区| 草民午夜欧美限制a级福利片| 成人444kkkk在线观看| 久久精品99国产精品酒店日本| 欧美视频一二三| 久久99国产精品久久久久久久久|