Java異常處理(一)

  • 先創(chuàng)建一個自定義異常類 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("不能為負數(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ā)生了其他異常");    
        }
    }
}
  • 運行結(jié)果:


    image.png

注意事項:

[java] view plain copy
void method1() throws IOException{}  //合法    
   
//編譯錯誤,必須捕獲或聲明拋出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){…}    
}    
   
//編譯錯誤,必須捕獲或聲明拋出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ù)組索引越界異常。當對數(shù)組的索引值為負數(shù)或大于等于數(shù)組大小時拋出。

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

3、java.lang.NullPointerException 空指針異常。當應(yīng)用試圖在要求使用對象的地方使用了null時,拋出該異常。譬如:調(diào)用null對象的實例方法、訪問null對象的屬性、計算null對象的長度、使用throw語句拋出null等等

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

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

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

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

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

2.IOException

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

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

FileNotFoundException 文件未找到異常

3. 其他

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

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

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

NoSuchFieldException 字段未找到異常

NoSuchMethodException 方法未找到拋出的異常

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

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

IllegalAccessException 不允許訪問某類異常

InstantiationException 當應(yīng)用程序試圖使用Class類中的newInstance()方法創(chuàng)建一個類的實例,而指定的類對象無法被實例化時,拋出該異常

參考資料:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容