java学习笔记2——异常

1、Java异常介绍

总类;Throwable 是一个接口  有两个子类 Exception (z主要了解和使用的), Error(系统级别的异常,不可控)

Exception 下面很又很多异常,常见有空指针异常,造型异常....

异常捕获机制:try-catch

try块:包含可能出现的错误代码片段

catch块:包含try块出现错误的种类,可以出现1-n次。好的编程习惯在最后一次捕获Exception异常

catch的捕i获由上到下,所以不要把父类的异常放上面,下面的子类异常永远不会执行,报错

2、throw

主动抛出异常。一般使用在业务逻辑上的出错。

方法中有参数的时候,方法由逻辑引发的错误就可以使用主动抛出异常。若是由自身方法引发的异常,应由方法自身解决

3、throws

使用在方法,因参数问题,方法自身不能解决,抛给方法的调用者。使用直接在方法后面加上 throws 异常的类型

--------------

throw 与 throws 的区别

throw是主动抛出异常

throws是方法中自身不能解决抛出异常给方法调用者解决

--------------

4、Exception异常

运行时异常:在编译时不进行检查的异常(RuntimeException)

可检查异常:在编译的时候进行检查

在方法中使用throw时,如果是运行时异常可以不要再方法中抛出异常,如果不是咋需要使用关键字throws抛出异常,否则话编译不通过!!

常见的运行时异常有:NullPointerException  (空指针)、StringIndexOutOfBoundsException (字符串数组越界)、 造型异常

5、finally

无条件执行

public class FinallyDemo {
public static void main(String[] args) {
System.out.println(
test(null)+","+test("0")+","+test(""));
/**
* 输出结果?
* 1,0,2 
* 4,4,4正确结果
*/
}

public static int test(String str){
try {
return str.charAt(0)-'0';
} catch (NullPointerException e) {
return 1;
}catch (RuntimeException e) {
return 2;
}catch (Exception e) {
return 3;
}finally{//在这里面最好不要return
return 4;
}
}

一个小例子:最后结果是4,4,4 不是1,0,2.

可以说finally语句无条件太强大了,可以覆盖原来的return返回值

----------

作为笔试题目比较......

----------

6、继承某个类时,其中方法有抛出异常的话,重写这个方法的的异常可以不写,或者抛出的异常只能是父类方法中异常中的子类(也相当于异常已有继承关系)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tobin liao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值