400-650-7353
您所在的位置:首頁 > IT干貨資料 > java > 【Java基礎(chǔ)知識】java自定義異常怎么使用

【Java基礎(chǔ)知識】java自定義異常怎么使用

  • 發(fā)布: java培訓
  • 來源:Java培訓干貨資料
  • 2020-03-11 16:29:00
  • 閱讀()
  • 分享
  • 手機端入口

Java為我們定義了非常多的異常處理,當程序運行出現(xiàn)問題之后,Java會將異常信息打印出來,我們可以很直觀的看到問題的源頭和原因,但是在我們開發(fā)中,會遇到各式各樣的問題,Java原有定義的異常經(jīng)常會不滿足我們的使用,這時候我們就可以自定義一些異常,當程序運行過程中出現(xiàn)某些情況的時候,可以將我們自定義的異常拋出,自定義的異常信息中可以包含我們當前所遇到的情況詳情,這樣我們就可以很明確的知道了那塊發(fā)生了什么問題或者知道那塊不滿足我們的預(yù)期要求。

自定義的異常類和普通類一樣,只要繼承于Exception或者Exception子類即可,我們可以在自定義的類里面重寫構(gòu)造函數(shù),函數(shù)的參數(shù)為錯誤的原因,并且調(diào)用父類的構(gòu)造函數(shù),例如:publice MyException extends Exception { public MyException(String message) {super.(message)}},定義好異常之后,我們可以在程序運行到某一步之后,拋出該異常,可以方便我們查找問題。

自定義的異常和系統(tǒng)異常的使用方法一致,都是使用throw new MyException("密碼不正確");進行異常的拋出。拋出該異常之后,我們可以在調(diào)用含有該異常的方法的時候,使用try {} catch(MyException e) {}進行捕獲處理,當然我們也可以講異常繼續(xù)往上一級進行拋,讓上一級的調(diào)用者進行處理,將異常繼續(xù)往上拋的方式和系統(tǒng)異常一樣,在方法的后面使用throws拋向上一級。

java自定義異常

剛才說了自定義的異常和普通類一樣,那么自定義的異常也是可以被繼承,我們創(chuàng)建兩個自定義的異常 ParentException和ChildException,其中ChildException繼承于ParentException,在我們開發(fā)中,經(jīng)常會有不同的情況進行不同的處理,例如在一個方法中可能出現(xiàn)ChildException,ParentException,Exception三種異常,我們使用try {} catch(Exception e){}進行捕獲的時候,我們需要按照由子到父的捕獲順序,也就是說我們捕獲異常的順序為ChildException, ParentException, Exception,格式為 try {} catch (ChildException e){} catch (ParentException e){} catch (Exception e){},如果我們的調(diào)用順序顛倒之后,程序無論發(fā)生任何異常都只會被Exception捕獲,不會被子異常類捕獲,原因是當程序catch到一個異常之后,就不會繼續(xù)往下進行,而Exception是異常類的父類,只要發(fā)生異常就會被它捕獲,所以后面的不會繼續(xù)執(zhí)行,所以在捕獲異常的時候,順序非常重要,否則程序打印的異常會和我們預(yù)期的不一樣。

 

文章“【Java基礎(chǔ)知識】java自定義異常怎么使用”已幫助

>>本文地址:http://nfbqydst.cn/zhuanye/2020/48472.html

THE END  

聲明:本站稿件版權(quán)均屬中公教育優(yōu)就業(yè)所有,未經(jīng)許可不得擅自轉(zhuǎn)載。

1 您的年齡

2 您的學歷

3 您更想做哪個方向的工作?

獲取測試結(jié)果
  • 大前端大前端
  • 大數(shù)據(jù)大數(shù)據(jù)
  • 互聯(lián)網(wǎng)營銷互聯(lián)網(wǎng)營銷
  • JavaJava
  • Linux云計算Linux
  • Python+人工智能Python
  • 嵌入式物聯(lián)網(wǎng)嵌入式
  • 全域電商運營全域電商運營
  • 軟件測試軟件測試
  • 室內(nèi)設(shè)計室內(nèi)設(shè)計
  • 平面設(shè)計平面設(shè)計
  • 電商設(shè)計電商設(shè)計
  • 網(wǎng)頁設(shè)計網(wǎng)頁設(shè)計
  • 全鏈路UI/UE設(shè)計UI設(shè)計
  • VR/AR游戲開發(fā)VR/AR
  • 網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全
  • 新媒體與短視頻運營新媒體
  • 直播帶貨直播帶貨
  • 智能機器人軟件開發(fā)智能機器人
 

快速通道fast track

近期開班時間TIME