更新時(shí)間:2020-08-03 15:12:13 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽2483次
Java自定義異常
示例1:創(chuàng)建自定義異常
一個(gè)英雄攻擊另一個(gè)英雄的時(shí)候,如果發(fā)現(xiàn)另一個(gè)英雄已經(jīng)掛了,就會(huì)拋出EnemyHeroIsDeadException
創(chuàng)建一個(gè)類EnemyHeroIsDeadException,并繼承Exception
提供兩個(gè)構(gòu)造方法
無(wú)參的構(gòu)造方法
帶參的構(gòu)造方法,并調(diào)用父類的對(duì)應(yīng)的構(gòu)造方法
class?EnemyHeroIsDeadException?extends?Exception{
?public?EnemyHeroIsDeadException(){
?}
?public?EnemyHeroIsDeadException(String?msg){
?super(msg);
?}
}
示例2:拋出自定義異常
在Hero的attack方法中,當(dāng)發(fā)現(xiàn)敵方英雄的血量為0的時(shí)候,拋出該異常
創(chuàng)建一個(gè)EnemyHeroIsDeadException實(shí)例
通過(guò)throw拋出該異常
當(dāng)前方法通過(guò)throws拋出該異常
在外部調(diào)用attack方法的時(shí)候,就需要進(jìn)行捕捉,并且捕捉的時(shí)候,可以通過(guò)e.getMessage()獲取當(dāng)時(shí)出錯(cuò)的具體原因
package?charactor;
public?class?Hero?{
?public?String?name;
?protected?float?hp;
?public?void?attackHero(Hero?h)?throws?EnemyHeroIsDeadException{
?if(h.hp?==?0){
?throw?new?EnemyHeroIsDeadException(h.name?+?"?已經(jīng)掛了,不需要施放技能"?);
?}
?}
?public?String?toString(){
?return?name;
?}
?
?class?EnemyHeroIsDeadException?extends?Exception{
?
?public?EnemyHeroIsDeadException(){
?
?}
?public?EnemyHeroIsDeadException(String?msg){
?super(msg);
?}
?}
?
?public?static?void?main(String[]?args)?{
?
?Hero?garen?=?new?Hero();
?garen.name?=?"蓋倫";
?garen.hp?=?616;
?Hero?teemo?=?new?Hero();
?teemo.name?=?"提莫";
?teemo.hp?=?0;
?
?try?{
?garen.attackHero(teemo);
?
?}?catch?(EnemyHeroIsDeadException?e)?{
?//?TODO?Auto-generated?catch?block
?System.out.println("異常的具體原因:"+e.getMessage());
?e.printStackTrace();
?}
?
?}
}
Java異常簡(jiǎn)介:http://www.dabaquan.cn/tutorial_java_advance/613.html
Java異常處理:http://www.dabaquan.cn/tutorial_java_advance/614.html
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“編程基礎(chǔ)Java異常處理,自定義異常”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)