首页 > 编程语言 >javaSE基础-异常

javaSE基础-异常

时间:2022-11-06 23:35:45浏览次数:37  
标签:int EcDef 基础 public catch javaSE 异常 throws

异常(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抛出的是异常对象。

标签:int,EcDef,基础,public,catch,javaSE,异常,throws
From: https://www.cnblogs.com/bione/p/16864577.html

相关文章

  • java--Stream流基础
    Stream流操作方法执行完此方法之后,Stream流依然可以继续执行其他操作Stream流的思想 Stream流的三类方法  获取Stream流    好比创建一条流水线,并把数据放......
  • Python基础语法
    注释单行注释:以#开头,一般#和内容以空格隔开多行注释:一对三个引号,当有变量接收时是字符串的一种形式数据类型查看数据类型函数:type()类型转换类型(),例如:int(),......
  • React组件基础二
    1.注册事件React注册事件与DOM的事件语法非常像语法on+事件名={事件处理程序}比如onClick={this.handleClick}注意:React事件采用驼峰命名法,比如onMouseEnter,onClick......
  • java反射基础
    一,概念JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方......
  • 嵌入式-C语言基础:联合体和共用体的概念
    有时候同一块内存空间存放类型不同,不同类型的变量共享一块空间。结构体和共用体的区别:(1)结构体元素有各自单独空间,共用体元素共享空间,空间大小由最大类型确定。(2)结构体元......
  • 2022-2023-1 20221328《计算机基础与程序设计》第十周学习总结
    作业信息班级:首页-2022-2023-1-计算机基础与程序设计-北京电子科技学院-班级博客-博客园(cnblogs.com)作业要求:2022-2023-1《计算机基础与程序设计》教学进程......
  • Day6:Python基础:简单购物车
    while1:Li=['手机','电脑','Ipad','无线耳机','运动鞋']forLoopinLi:print('{}\t{}'.format(Li.index(Loop)+1,Loop))Num_chioce=inpu......
  • 2022-2023-1 20221301 《计算机基础与程序设计》第十周学习总结
    2022-2023-120221301《计算机基础与程序设计》第十周学习总结作业信息这个作业属于哪个课程<班级的链接>https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP......
  • 2022-2023-1 20221420《计算机基础与程序设计》第十周学习总结
    作业信息这个作业属于哪个课程<班级的链接>https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP这个作业要求在哪里<作业要求的链接>https://www.cnblogs.c......
  • 2022-2023-1 20221312 《计算机基础与程序设计》第十周学习总结
    班级链接:首页-2022-2023-1-计算机基础与程序设计-北京电子科技学院-班级博客-博客园(cnblogs.com)作业要求:2022-2023-1《计算机基础与程序设计》教学进程-娄......