Java學習筆記之自定義異常

不知為何就叫呵呵發表於2016-08-15

1.自定義異常類:

/**
 * 自定義異常,只要繼承繼承Exception類或其子類即可
 * @author Administrator
 *
 */
public class FileException extends Exception {
    /*public FileException(){
        
    }
    public FileException(String gripe){
        //super(gripe);
    }*/
    public void printStackTrace(){
        System.out.println("suohai");
    }
}

2.丟擲異常:

class Text{
    public static void t() throws FileException{
        /*
         * 呼叫t(),必須捕捉這異常,需要在別的類中接受這異常,就得throws Exception
         * throws FileException且別的類呼叫時,必須使用try...catch語句,不管能不能捕獲,
         * 即在此方法中已經捕獲這個異常,但並沒有再次丟擲,呼叫此方法的類並不會捕獲這異常,依然要try...catch
        */
        /**
         * 可以只在方法中丟擲異常,在呼叫方法時捕捉異常
         * 也可以直接在方法內捕捉異常,即不用try...catch語句,
         * 直接丟擲異常:throw new FileException("hehe");
         */
        try{
            throw new FileException();//丟擲異常,呼叫FileException類的構造方法
        }catch(FileException  e){
            System.out.println("呵呵");
            throw e;//要想在方法外面再次捕捉這異常,需要再次丟擲,因為在外面呼叫方法時,永遠都會被方法內的捕獲。
        }
    }
}

3.捕獲異常:

public class ExceptionTest {


    public static void main(String[] args) {
                /**即便不會捕獲這個異常,
                   *也需要使用try...catch語句
                 **/
                try {
            Text.t();
        } 
        /*catch (FileException e) {
            
            System.out.println("啊哈");
        } */
        catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        

    }

}   



 


 

4.執行結果:
呵呵
suohai

相關文章