javaSE基础-异常

异常(Exception)

异常

异常相关概念

异常:是在运行时期发生的不正常情况。

运行时异常:可以正常编译,只有在代码运行的过程中,由于参数运算的数据导致异常。

编译时异常:编译检查时就能发现的异常,必须经过异常处理之后才能正常编译。

异常处理方式

//方式一: try-catch-finally
try {
	//需要被检测异常的代码
}
catch(异常类 变量) { //该变量用于接收发生异常的对象
	//处理异常代码
}
finally{
    //一定会被执行的代码
}

//方式二: throws
public void method() throws XxxException{}

注:多catch,父类的catch放在最下面

自定义异常类

public class EcDef extends Exception {
    static final long serialVersionUID = -33875169934229948L;

    EcDef() {}

    EcDef(String msg) {
        super(msg);
    }
}

示例

public class EcmDef {
    public static void main(String[] args) {
        try {
            int i = Integer.parseInt(args[0]);
            int j = Integer.parseInt(args[1]);
            int result = ecm(i, j);
            System.out.println(result);
        } catch (NumberFormatException e) {
            System.out.println("数据类型不一致");
        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("缺少命令行参数数");
        } catch (ArithmeticException e) {
            System.out.println("除数为0");
        } catch (EcDef e) {
            System.out.println(e.getMessage());
        }
    }

    public static int ecm(int i, int j) throws EcDef {
        if (i < 0 || j < 0) {
            throw new EcDef("分子或分母为负数!");
        }
        return i / j;
    }
}

拓展

1、throws 和throw的区别

  • throws使用在函数上,throw使用在函数内。

  • throws抛出的是异常类,可以抛出多个,用逗号隔开。throw抛出的是异常对象。

posted @ 2022-11-06 23:20  Bingeone  阅读(17)  评论(0编辑  收藏  举报