其他分享
首页 > 其他分享> > 第七课-什么是异常

第七课-什么是异常

作者:互联网

异常体系结构

捕获和抛出异常

异常处理机制

package Demo;

// 一个项目应该只存在一个main方法
public class Application {

    public static void main(String[] args) {
        int a = 1;
        int b = 0;

        // try,catch必须要写,catch捕获的异常建议从小到大,不容易遗漏
        // finally可以不写,但如果有一些IO操作,可以用finally进行关闭
        try { // try可以监控一个代码块
            // 当知道肯定会出错的时候,可以主动抛出异常
            if (b == 0) {
                throw ArithmeticException();  // 主动抛出异常,一般用于方法中
            }
            System.out.println(a / b);
        } catch (ArithmeticException e) {  // catch(想要捕获的异常类型),可以有多个
            System.out.println("被除数不能为0");
            e.printStackTrace();  // 打印错误的栈信息
        } finally {
            System.out.println("finally");
        }
    }
}
package Demo;

// 一个项目应该只存在一个main方法
public class Application {

    public static void main(String[] args) {
        int a = 1;
        int b = 0;

        new Application().test(a, b);
    }

    // 假设在这个方法中处理不了这个异常,我们可以在方法上抛出异常
    // 方法内throw,方法上throws
    public void test(int a, int b) throws ArithmeticException {
        if (b == 0) {
            throw new ArithmeticException();
        }
        System.out.println(a / b);
    }
}

自定义异常和经验

package Demo;

// 一个项目应该只存在一个main方法
public class Application {

    public static void main(String[] args) {
        int b = 0;

        try {
            new Application().test(b);
        }catch(MyException e){
            System.out.println(e);
        }
    }

    // 假设在这个方法中处理不了这个异常,我们可以在方法上抛出异常
    // 方法内throw,方法上throws
    public void test(int a) throws MyException {
        if (a == 0) {
            throw new MyException(a);
        }
        System.out.println("ok");
    }
}

标签:第七课,什么,try,处理,int,catch,异常,public
来源: https://www.cnblogs.com/hanxueyan/p/14825957.html