Java0基础_day08-异常

标签:异常处理

1. 背景

    很多时候,我们的方法都会产生一些错误,例如在写除法计算器时,如果除数为0,则系统会返回除0的异常错误,因此为了让方法的调用者知悉异常情况,让其自行处理异常,因此JAVA引入异常(Exception)这一对象。


2. 分类

    java中异常老祖宗为Object类,然后接下来是Throwable,如下图所示:

 

 比较常见的运行时错误代数错误、空指针异常、数组越界、参数非法

而IO异常指的是读写文件时的一些错误;ClassNotFoundException指未找到类异常;

而至于最后的Error一般是操作系统的问题,一般不会出现。

【注意】如上图,RuntimeException和Error分类下的异常免检,因为比较常见,因此java规定不用强制声明、抛出和处理异常,其他异常必须检查,表现在编译器就是会报错,因此此时我们只需要在被调用方法头加上throws Exception或者在调用方法内加上try-catch块进行处理


3. 格式

那么异常应该怎么声明创建处理呢?

 首先声明异常:正常的方法写完后(返回值类型、方法签名),大括号前声明异常,表明该方法可能会返回某种异常,格式为:

throws ArithmeticException(异常类型)

然后就是方法内部创建/抛出异常,这里当除数为0,抛出一个代数异常,本质上是通过new新建了一个代数异常类的对象,括号内为提示信息,即:

throw new ArithmeticException("除数非法,不能是整数0")

最后是处理异常,main方法中将方法返回值给outCome变量,如果出错让catch捕获异常,然后处理,即:

 通过try-catch语句块执行,正常情况是执行try语句,然后结束try-catch语句块一旦出现异常则跳转到catch语句然后跳出try-catch语句块

【总结】由此可见,称之为抛出是很形象的,相当于从throw的地方将异常传递给了try-catch方法块中的catch,然后结束。

【总结2】catch块异常类型必须从小到大(不然永远都是执行第一句,与逻辑相反!)


4. 异常继承

值得注意的是,如果父类中方法没有显示声明异常,则子类不可继承其异常类型。


5. 异常使用时机

由于new一个异常对象、异常处理追溯需要资源,故当且仅当在应对不可预料的逻辑错误时需要加入try-catch语句,否则采用正常的逻辑即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值