Java学习笔记之自定义异常

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
原文地址:https://www.cnblogs.com/qingyibusi/p/5774229.html