Java異常處理(一)

  • 先創(chuàng)建一個(gè)自定義異常類 CCException 吴汪,再添加搭配 BB 類里捕捉異常的處理中钞楼。
package z1;

//自定義異常
public class CCException extends Exception{

    String message;
    public CCException(String messageError){
        message=messageError;
    }
    public String getMessage(){
    
        return message;
    }
}
package z1;

public class BB{
    
    static int arr(int x,int y)throws CCException{
    
        if(y<0)
        {
            throw new CCException("不能為負(fù)數(shù)");
        }
        
        return x/y;
    }
    public static void main(String[] args){

        try{
            
            int value=arr(12,-3);
            System.out.println(value);
        }catch(CCException e){
            
            System.out.println(e.getMessage());//自定義異常  
        }catch(ArithmeticException e){
            
            System.out.println("算術(shù)異常"); 
        }catch(Exception e){
            
            System.out.println("程序發(fā)生了其他異常");    
        }
    }
}
  • 運(yùn)行結(jié)果:


    image.png

注意事項(xiàng):

[java] view plain copy
void method1() throws IOException{}  //合法    
   
//編譯錯(cuò)誤,必須捕獲或聲明拋出IOException    
void method2(){    
  method1();    
}    
   
//合法舌缤,聲明拋出IOException    
void method3()throws IOException {    
  method1();    
}    
   
//合法箕戳,聲明拋出Exception某残,IOException是Exception的子類    
void method4()throws Exception {    
  method1();    
}    
   
//合法,捕獲IOException    
void method5(){    
 try{    
    method1();    
 }catch(IOException e){…}    
}    
   
//編譯錯(cuò)誤陵吸,必須捕獲或聲明拋出Exception    
void method6(){    
  try{    
    method1();    
  }catch(IOException e){throw new Exception();}    
}    
   
//合法玻墅,聲明拋出Exception    
void method7()throws Exception{    
 try{    
  method1();    
 }catch(IOException e){throw new Exception();}    
}  

Java異常類層次結(jié)構(gòu)圖

Java異常類層次結(jié)構(gòu)圖
1. runtimeException子類:

1、 java.lang.ArrayIndexOutOfBoundsException 數(shù)組索引越界異常壮虫。當(dāng)對(duì)數(shù)組的索引值為負(fù)數(shù)或大于等于數(shù)組大小時(shí)拋出澳厢。

2、java.lang.ArithmeticException 算術(shù)條件異常囚似。譬如:整數(shù)除零等剩拢。

3、java.lang.NullPointerException 空指針異常饶唤。當(dāng)應(yīng)用試圖在要求使用對(duì)象的地方使用了null時(shí)徐伐,拋出該異常。譬如:調(diào)用null對(duì)象的實(shí)例方法募狂、訪問(wèn)null對(duì)象的屬性办素、計(jì)算null對(duì)象的長(zhǎng)度、使用throw語(yǔ)句拋出null等等

4祸穷、java.lang.ClassNotFoundException 找不到類異常摸屠。當(dāng)應(yīng)用試圖根據(jù)字符串形式的類名構(gòu)造類,而在遍歷CLASSPAH之后找不到對(duì)應(yīng)名稱的class文件時(shí)粱哼,拋出該異常季二。

5、java.lang.NegativeArraySizeException 數(shù)組長(zhǎng)度為負(fù)異常

6揭措、java.lang.ArrayStoreException 數(shù)組中包含不兼容的值拋出的異常

7胯舷、java.lang.SecurityException 安全性異常

8、java.lang.IllegalArgumentException 非法參數(shù)異常

2.IOException

IOException:操作輸入流和輸出流時(shí)可能出現(xiàn)的異常绊含。

EOFException 文件已結(jié)束異常

FileNotFoundException 文件未找到異常

3. 其他

ClassCastException 類型轉(zhuǎn)換異常類

ArrayStoreException 數(shù)組中包含不兼容的值拋出的異常

SQLException 操作數(shù)據(jù)庫(kù)異常類

NoSuchFieldException 字段未找到異常

NoSuchMethodException 方法未找到拋出的異常

NumberFormatException 字符串轉(zhuǎn)換為數(shù)字拋出的異常

StringIndexOutOfBoundsException 字符串索引超出范圍拋出的異常

IllegalAccessException 不允許訪問(wèn)某類異常

InstantiationException 當(dāng)應(yīng)用程序試圖使用Class類中的newInstance()方法創(chuàng)建一個(gè)類的實(shí)例桑嘶,而指定的類對(duì)象無(wú)法被實(shí)例化時(shí),拋出該異常

參考資料:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末躬充,一起剝皮案震驚了整個(gè)濱河市逃顶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌充甚,老刑警劉巖以政,帶你破解...
    沈念sama閱讀 222,000評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異伴找,居然都是意外死亡盈蛮,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,745評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門技矮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)抖誉,“玉大人殊轴,你說(shuō)我怎么就攤上這事√宦” “怎么了旁理?”我有些...
    開(kāi)封第一講書人閱讀 168,561評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)我磁。 經(jīng)常有香客問(wèn)我韧拒,道長(zhǎng),這世上最難降的妖魔是什么十性? 我笑而不...
    開(kāi)封第一講書人閱讀 59,782評(píng)論 1 298
  • 正文 為了忘掉前任叛溢,我火速辦了婚禮,結(jié)果婚禮上劲适,老公的妹妹穿的比我還像新娘楷掉。我一直安慰自己,他們只是感情好霞势,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,798評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布烹植。 她就那樣靜靜地躺著,像睡著了一般愕贡。 火紅的嫁衣襯著肌膚如雪草雕。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 52,394評(píng)論 1 310
  • 那天固以,我揣著相機(jī)與錄音墩虹,去河邊找鬼。 笑死憨琳,一個(gè)胖子當(dāng)著我的面吹牛诫钓,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播篙螟,決...
    沈念sama閱讀 40,952評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼菌湃,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了遍略?” 一聲冷哼從身側(cè)響起惧所,我...
    開(kāi)封第一講書人閱讀 39,852評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎绪杏,沒(méi)想到半個(gè)月后下愈,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,409評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡寞忿,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,483評(píng)論 3 341
  • 正文 我和宋清朗相戀三年驰唬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了顶岸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腔彰。...
    茶點(diǎn)故事閱讀 40,615評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡叫编,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出霹抛,到底是詐尸還是另有隱情搓逾,我是刑警寧澤,帶...
    沈念sama閱讀 36,303評(píng)論 5 350
  • 正文 年R本政府宣布杯拐,位于F島的核電站霞篡,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏端逼。R本人自食惡果不足惜朗兵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,979評(píng)論 3 334
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望顶滩。 院中可真熱鬧余掖,春花似錦、人聲如沸礁鲁。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,470評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)仅醇。三九已至冗美,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間析二,已是汗流浹背粉洼。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,571評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留叶摄,地道東北人漆改。 一個(gè)月前我還...
    沈念sama閱讀 49,041評(píng)論 3 377
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像准谚,于是被迫代替她去往敵國(guó)和親挫剑。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,630評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法柱衔,類相關(guān)的語(yǔ)法樊破,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法唆铐,異常的語(yǔ)法哲戚,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,664評(píng)論 18 399
  • 一、Java 簡(jiǎn)介 Java是由Sun Microsystems公司于1995年5月推出的Java面向?qū)ο蟪绦蛟O(shè)計(jì)...
    子非魚(yú)_t_閱讀 4,206評(píng)論 1 44
  • 六種異常處理的陋習(xí) 你覺(jué)得自己是一個(gè)Java專家嗎艾岂?是否肯定自己已經(jīng)全面掌握了Java的異常處理機(jī)制顺少?在下面這段代...
    Executing閱讀 1,334評(píng)論 0 6
  • 小旺才: 今天趁著你和小伙伴去寵物空間看寵物,我趕緊給你寫情書。 今天放學(xué)后和小伙伴一起吃下午點(diǎn)心脆炎,一起做作業(yè)梅猿,一...
    樊里洋閱讀 144評(píng)論 0 0
  • 還記得那兒時(shí)喚不厭的爸媽 還記得行囊里滿載著的牽掛 流浪的你,過(guò)些年在路上掙扎 你說(shuō)想回去那個(gè)溫暖的家 冰凍的情緒...
    南船北海閱讀 212評(píng)論 3 3