日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java:异常体系

發布時間:2025/7/14 java 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java:异常体系 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

異常的類別:可處理異常,運行時異常,非運行時異常

?

子類重寫父類方法,父類方法有異常拋出,
子類重寫父類的方法?
不能比父類拋出更大的異常

?

前言:
java 中的異常處理機制你真的理解了嗎?掌握了嗎?
catch 體里遇到 return 是怎么處理? finally 體遇到 return 怎么辦?finally 體里有 System.exit() 方法怎么處理?當 catch 和 finally 體里同時遇上 return 怎么辦?

相信你在處理異常的時候不是每次都把它 throws 掉就完事了,很多時候異常是需要我們自己來 catch 并針對所拋出的 Exception 做一些后續的處理工作。

直接上代碼,先貼下面測試需要調用的方法:

?1
?2????//?catch?后續處理工作
?3????public?static?boolean?catchMethod() {
?4????????System.out.print("call?catchMethod?and?return??--->>??");
?5????????return?false;
?6????}
?7????//?finally后續處理工作
?8????public?static?void?finallyMethod() {
?9????????System.out.println();
10????????System.out.print("call?finallyMethod?and?do?something??--->>??");
11????}
12



1. 拋出 Exception,沒有 finally,當 catch 遇上 return

?1
?2public?static?boolean?catchTest() {
?3????????try?{
?4????????????int?i?=?10?/?0;?? //?拋出?Exception,后續處理被拒絕
?5????????????System.out.println("i?vaule?is?:?"?+?i);
?6????????????return?true;????//?Exception?已經拋出,沒有獲得被執行的機會
?7????????}?catch?(Exception?e)?{
?8????????????System.out.println("?--?Exception?--");
?9????????????return?catchMethod();????//?Exception?拋出,獲得了調用方法并返回方法值的機會
10????????}
11????}
12


后臺輸出結果:

1
2?--?Exception?--
3call?catchMethod?and?return??--->>??false
4


2. 拋出 Exception,當 catch 體里有 return,finally 體的代碼塊將在 catch 執行 return 之前被執行

?1
?2public?static?boolean?catchFinallyTest1() {
?3????????try?{
?4????????????int?i?=?10?/?0;?//?拋出?Exception,后續處理被拒絕
?5????????????System.out.println("i?vaule?is?:?"?+?i);
?6????????????return?true;???//?Exception?已經拋出,沒有獲得被執行的機會
?7????????}?catch?(Exception?e)?{
?8????????????System.out.println("?--?Exception?--");
?9????????????return?catchMethod();??//?Exception?拋出,獲得了調用方法的機會,但方法值在?finally?執行完后才返回
10????????}finally{
11????????????finallyMethod();??//?Exception?拋出,finally 代碼塊將在?catch?執行?return?之前被執行
12????????}
13????}
14


后臺輸出結果:

1
2?--?Exception?--
3call?catchMethod?and?return??--->>??
4call?finallyMethod?and?do?something??--->>??false
5


3. 不拋 Exception,當 finally 代碼塊里面遇上 return,finally 執行完后將結束整個方法

?1
?2public?static?boolean?catchFinallyTest2() {
?3????????try?{
?4????????????int?i?=?10?/?2;??//?不拋出?Exception
?5????????????System.out.println("i?vaule?is?:?"?+?i);
?6????????????return?true;???//?獲得被執行的機會,但執行需要在?finally?執行完成之后才能被執行
?7????????}?catch?(Exception?e)?{
?8????????????System.out.println("?--?Exception?--");
?9????????????return?catchMethod();
10????????}finally{
11????????????finallyMethod();
12????????????return?false;?//?finally?中含有?return?語句,這個?return?將結束這個方法,不會在執行完之后再跳回?try?或?catch?繼續執行,方法到此結束,返回 false
13????????}
14????}
15


后臺輸出結果:

1
2i?vaule?is?:?5
3
4call?finallyMethod?and?do?something??--->>??false
5


4. 不拋 Exception,當 finally 代碼塊里面遇上 System.exit() 方法 將結束和終止整個程序,而不只是方法

?1
?2public?static?boolean?finallyExitTest() {
?3????????try?{
?4????????????int?i?=?10?/?2;??//?不拋出?Exception
?5????????????System.out.println("i?vaule?is?:?"?+?i);
?6????????????return?true;???//?獲得被執行的機會,但由于 finally 已經終止程序,返回值沒有機會被返回
?7????????}?catch?(Exception?e)?{
?8????????????System.out.println("?--?Exception?--");
?9????????????return?true;
10????????}finally {
11????????????finallyMethod();
12????????????System.exit(0);//?finally?中含有?System.exit()?語句,System.exit()?將退出整個程序,程序將被終止
13????????}
14????}
15


后臺輸出結果:

1
2i?vaule?is?:?5
3
4call?finallyMethod?and?do?something??--->>??
5


5. 拋出 Exception,當 catch 和 finally 同時遇上 return,catch 的 return 返回值將不會被返回,finally 的 return 語句將結束整個方法并返回

?1
?2public?static?boolean?finallyTest1() {
?3????????try?{
?4????????????int?i?=?10?/?0;?//?拋出?Exception,后續處理被拒絕
?5????????????System.out.println("i?vaule?is?:?"?+?i);
?6????????????return?true;???//?Exception?已經拋出,沒有獲得被執行的機會
?7????????}?catch?(Exception?e)?{
?8????????????System.out.println("?--?Exception?--");
?9????????????return?true;??//?Exception?已經拋出,獲得被執行的機會,但返回操作將被 finally 截斷
10????????}finally {
11????????????finallyMethod();
12????????????return?false;??//?return?將結束整個方法,返回?false
13????????}
14????}
15


后臺輸出結果:

1
2?--?Exception?--
3
4call?finallyMethod?and?do?something??--->>??false
5


6. 不拋出 Exception,當 finally 遇上 return,try 的 return 返回值將不會被返回,finally 的 return 語句將結束整個方法并返回

?1
?2public?static?boolean?finallyTest2() {
?3????????try?{
?4????????????int?i?=?10?/?2;??//?不拋出?Exception
?5????????????System.out.println("i?vaule?is?:?"?+?i);
?6????????????return?true;???//?獲得被執行的機會,但返回將被 finally 截斷
?7????????}?catch?(Exception?e)?{
?8????????????System.out.println("?--?Exception?--");
?9????????????return?true;
10????????}finally {
11????????????finallyMethod();
12????????????return?false;?//?return?將結束這個方法,不會在執行完之后再跳回?try?或?catch?繼續執行,返回?false
13????????}
14????}
15


后臺輸出結果:

1
2i?vaule?is?:?5
3
4call?finallyMethod?and?do?something??--->>??false
5


結語:
(假設方法需要返回值)
java 的異常處理中,
在不拋出異常的情況下,程序執行完 try 里面的代碼塊之后,該方法并不會立即結束,而是繼續試圖去尋找該方法有沒有 finally 的代碼塊,
如果沒有?finally 代碼塊,整個方法在執行完 try 代碼塊后返回相應的值來結束整個方法;
如果有 finally 代碼塊,此時程序執行到 try 代碼塊里的 return 語句之時并不會立即執行 return,而是先去執行 finally 代碼塊里的代碼,
若 finally 代碼塊里沒有 return 或沒有能夠終止程序的代碼,程序將在執行完 finally 代碼塊代碼之后再返回 try 代碼塊執行 return 語句來結束整個方法;
若 finally 代碼塊里有 return 或含有能夠終止程序的代碼,方法將在執行完 finally 之后被結束,不再跳回 try 代碼塊執行 return。
在拋出異常的情況下,原理也是和上面的一樣的,你把上面說到的 try 換成 catch 去理解就 OK 了 *_*

?

轉載于:https://www.cnblogs.com/monion/p/7049490.html

總結

以上是生活随笔為你收集整理的Java:异常体系的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品免费视频 | 亚洲精品一区二区三区婷婷月 | 爆乳2把你榨干哦ova在线观看 | 色屁屁在线| 超碰2020| 天天射狠狠干 | 亚洲www | 小仙女av | 九色视频偷拍少妇的秘密 | 91视频你懂的 | 激情文学综合网 | 在线高清免费观看 | h片免费观看 | 秋霞av在线| 日韩综合网 | 亚洲视频中文字幕 | 粉色视频网站 | 亚州精品国产精品乱码不99按摩 | 亚洲色图av在线 | 成人午夜激情 | 国产超碰人人爽人人做人人爱 | 久久久精品中文字幕麻豆发布 | 欧美激情视频一区二区三区不卡 | 日韩黄色一级大片 | 欧美大片在线观看 | 老鸭窝久久 | 久久在线视频免费观看 | 999zyz玖玖资源站永久 | 夜夜成人| 亚洲国产欧美一区二区三区深喉 | 国产片在线播放 | 一级女性全黄久久生活片免费 | www国产 | 中文字幕乱伦视频 | 让男按摩师摸好爽 | 亚洲女人18毛片水真多 | 三级免费 | 牛牛影视免费观看 | 国产美女极度色诱视频www | 国产视频一区在线 | 蜜臀aⅴ国产精品久久久国产老师 | 亚洲视频精品在线 | 在线观看h视频 | 国产大奶在线 | 午夜婷婷丁香 | 中文字幕亚洲欧美 | 欧美壮男野外gaytube | 欧美激情网址 | 日韩高清免费av | 国产一级二级三级 | 男人的亚洲天堂 | 欧美亚洲国产成人 | 欧美精品123 | 黄色的视频网站 | 日韩性xxx | 国产精品国产一区二区三区四区 | 欧美三级手机在线观看 | 色爽视频 | 国产又粗又猛又爽又黄av | 老司机午夜精品视频 | 国产精品96久久久久久 | 男人爱看的网站 | 人人射| 少妇人妻精品一区二区三区 | 欧美性大交 | 精品久久久久久中文字幕人妻最新 | 伊在线久久丫 | 日韩美女久久 | 日韩精彩视频 | 欧美一区二区三区视频 | 五月丁香| 美国美女黄色片 | 亚洲乱码中文字幕久久孕妇黑人 | 亚色一区 | 久草青青视频 | 日韩123| 国模叶桐尿喷337p人体 | 精品国产高清在线观看 | 一个人看的www日本高清视频 | 国产精品一区在线观看你懂的 | 日韩avxxx | 日本丰满熟妇videossex一 | 偷拍女澡堂一区二区三区 | 精品视频大全 | 成人黄色片视频 | xxxx.国产| 精品少妇一区二区三区在线观看 | www.亚洲激情 | 毛片手机在线 | 亚洲国产精品第一页 | 色女人影院 | 成人hd| 亚洲蜜桃av一区二区 | 99国产精品| 免费国产 | 亚洲一区二区三区高清视频 | 长河落日 | 亚州av在线 | 日韩一区高清 |